public static void main(String[] args) throws Exception {
FileOutputStream fos=new FileOutputStream("c:\\2.txt");
DataOutputStream dos=new DataOutputStream(fos);
dos.writeByte(1);
dos.writeShort(2);
dos.writeInt(3);
dos.flush();
dos.close();
FileInputStream fis=new FileInputStream("c:\\2.txt");
DataInputStream dis=new DataInputStream(fis);
System.out.println(dis.readByte());
System.out.println(dis.readShort());
System.out.println(dis.readInt());
}
数据流一般在通信中用,当我们在网络通信中自定义消息协议的时候会用到,以后具体再说。
首先看这几行代码,DataOutputStream 和DataInputStream 典型的是一种包装流,
当我往外写的时候,先写的是一个byte,然后是一个short,最后是一个int,当我们打开这个二进制文件的时候会是这样
这里存放的是数据的十六进制,0--f代表每一个是一个字节的长度,当我们读取一个byte的时候,首先读取的是0下面的两个数字01,它的二进制就是0000 0001,然后读取short 十六位,就是1和2下面的数字,二进制是 0000 0000 0000 0010 ,以此类推。这里面有一个read()方法,这个方法是一次读取一个byte,如果读取完毕则返回-1,如果读取此文件的话那就是1 ,0, 2, 0, 0, 0, 3
当然,你是按照什么顺序写的就按照什么顺序读取,如果第一次就读取一个int的话那就是一次读取32位,将0--3下面的数字读取,然后转成十进制,是一个很大的数。