JAVA DataOutputStream和DataInputStream

是Java中输入输出流的装饰类

DataOutputStream 数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。

主要方法:

void write(byte[] b,int off,int len);//将byte数组off角标开始的len个字节写到OutputStream 输出流对象中。

void write(int b);//将指定字节的最低8位写入基础输出流。

void writeBoolean(boolean b);//将一个boolean值以1-byte形式写入基本输出流。

void writeByte(int v);//将一个byte值以1-byte值形式写入到基本输出流中。

void writeBytes(String s);//将字符串按字节顺序写入到基本输出流中。

void writeChar(int v);//将一个char值以2-byte形式写入到基本输出流中。先写入高字节。

void writeInt(int v);//将一个int值以4-byte值形式写入到输出流中先写高字节。

void writeUTF(String str);//以机器无关的的方式用UTF-8修改版将一个字符串写到基本输出流。该方法先用writeShort写入两个字节表示后面的字节数。

int size();//返回written的当前值

 

DataInputStream  允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入后由数据输入流读取的数据。

主要方法:

int read(byte[] b);//从输入流中读取一定的字节,存放到缓冲数组b中。返回缓冲区中的总字节数。

int read(byte[] buf,int off,int len);//从输入流中一次读入len个字节存放在字节数组中的偏移off个字节及后面位置。

String readUTF();//读入一个已使用UTF-8修改版格式编码的字符串

String readLine();

boolean readBoolean;

int readInt();

byte readByte();

char readChar();

注意:DataInputStream与DataOutputStream必须成对出现  DataInputStream读数据时,需要和DataOutputStream写入时的顺序一致,也不能跳过读

package io;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class DataIOTest
{
    public static void main(String[] args)
    {
        writeData();
        readData();
    }

    private static void writeData()
    {
        DataOutputStream dos = null;
        try
        {
            dos = new DataOutputStream(new FileOutputStream(new File("dataoutput.txt")));
        } catch (FileNotFoundException e1)
        {
            e1.printStackTrace();
        }
        try
        {
            dos.writeInt(123);
            dos.writeByte(‘C‘);
            dos.writeDouble(12.345);
            dos.writeFloat((float) 1.23);
            dos.writeUTF("this is a string");
            dos.flush();
        } catch (IOException e)
        {
            e.printStackTrace();
        } finally
        {
            if (null != dos)
            {
                try
                {
                    dos.close();
                } catch (IOException e)
                {
                    e.printStackTrace();
                }
            }
        }
    }

    private static void readData()
    {
        DataInputStream dis = null;
        try
        {
            dis = new DataInputStream(new FileInputStream(new File("dataoutput.txt")));
        } catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }
        try
        {
            System.out.println(dis.readInt());
            System.out.println((char)dis.readByte());
            System.out.println(dis.readDouble());
            System.out.println(dis.readFloat());
            System.out.println(dis.readUTF());
        } catch (IOException e)
        {
            e.printStackTrace();
        } finally
        {
            if (null != dis)
            {
                try
                {
                    dis.close();
                } catch (IOException e)
                {
                    e.printStackTrace();
                }
            }
        }
    }
}
时间: 2024-10-05 20:00:39

JAVA DataOutputStream和DataInputStream的相关文章

JAVA IO操作:数据操作流:DataOutputStream和DataInputStream

掌握DataOutputStream和DataInputStream的作用. 可以使用DataOutputStream和DataInputStream写入和读取数据. 在IO包中提供了两个与平台无关的数据操作流 数据输出流:DataOutputStream 数据输入流:DataInputStream 通常按照一定格式将输入输出,再按照一定格式将数据输入. 要想使用数据输出流和输入流,则肯定要用户指定数据的保存格式.必须按指定的格式保存数据,才可以将数据输入流将数据读取进来. DataOutput

JavaI/O:简单的使用DataOutputStream和DataInputStream操作文件流

DataInputStream 是数据输入流.它继承于FilterInputStream.DataInputStream 是用来装饰其它输入流,它"允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型".应用程序可以使用DataOutputStream(数据输出流)写入由DataInputStream(数据输入流)读取的数据. DataOutputStream?是数据输出流.它继承于FilterOutputStream.DataOutputStream?是用来装饰其它

java 数据流DataOutputStream和DataInputstream

java流操作类的认识和总结 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2pjMjExMzIy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" /> 应用实例 import java.io.*; public class DataStreamDemo { public static void main(String[] args) { t

DataOutputStream and DataInputStream

        DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("a.txt")));         dos.writeInt(5);         dos.writeBoolean(true);         dos.flush();         dos.close();         DataInputStream dis = new Da

Java IO之DataInputStream,ObjectInputStream,ByteArrayInputStream等

一.节点流 1.字节数组 字节 节点流 输入流 ByteArrayInputStream read(byte[] b, int off, int len)+close() 输出流 ByteArrayOutputStream write(byte[] b, int off, int len)+ toByteArray() 这是个新增方法,不要使用多态 package IOOthers; import java.io.BufferedInputStream; import java.io.ByteA

数据操作流DataOutputStream、DataInputStream类

[例子1] import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; public class DataOutputStreamDemo{ public static void main(String[] args) throws IOException{ File file = new File("d:" + Fi

数据流:DataOutputStream与DataInputStream的使用

看这两个类的名字就不难猜测出它们的类关系图. DataOutputStream: 主要是一些writeXxx()操作,写出, 相当于序列化 DataInputStream: 主要是一些readXxx()操作,写入, 相当于反序列化 一般情况下,两者会成对出现. 在使用过程中要特别注意, 一个writeXxx() 对应着一个readXxx(), 千万不要用readInt()去对应writeBoolean(). 说白了,就是序列化与反序列化要匹配. 下面举个例子,将Student对象的属性序列化后保

20145326 《Java程序设计》第6周学习总结

20145326 <Java程序设计>第6周学习总结 教材学习内容总结 第十章 一.使用InputStream与OutputStream 1.串流设计的概念 想活用输入/输出API,一定要先了解Java中如何以串流抽象化输入/输出概念,以及InputStream.OutputStream继承架构.如此一来,无论标准输入/输出.文档输入/输出.网络输入/输出.数据库输入/输出都可以用一致的操作来处理.Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象,其实数据就好比水,串

Java基础:阻塞式IO

转载请注明出处:jiq?钦's technical Blog 备注:阅读此文之前,建议先看我这篇博文了解阻塞式IO和非阻塞式IO的基本概念. 一.流(Stream) 1.字节流 输入(InputStream) 介质流 FileInputStream 从文件中读取信息 PipedInputStream 产生用于写入相关PipedOutputStream的数据,实现"管道化"概念 ByteArrayInputStream 允许将内存缓冲区当做InputStream使用 处理流 Sequen