数据流:DataInputStream和DataOutputStream分别继承来自InputStream和OutputStream,它属于处理流,需要分别“套接”在InputStream和OutputStream类型的节点流上、DataInputStream和DataOutputStream提供了可以存取与机器无关的Java原始数据类型(int、double)的方法、DataInputStream和DataOutputStream的构造方法为:DataInputStream(InputStream)和DataOutputStream(OutputStream)
import java.io.*;
public class TestDataStream {
public static void main(String[] args) {//分配ByteArray字节数组
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
//套接了一层DataOutputStream,可以直接写基本类型数
try {
dos.writeDouble(Math.random()); //写入一个double类型数,8byte
dos.writeBoolean(true); //写入一个boolean类型数,1byte
ByteArrayInputStream bais = new ByteArrayInputStream(baos
.toByteArray()); //转换为字节数组
System.out.println(bais.available()); //已经用了的字节数
DataInputStream dis = new DataInputStream(bais); //套接DataOutputStream
System.out.println(dis.readDouble()); //按内存顺序读,所以要先写先读
System.out.println(dis.readBoolean()); //先进先出,队列
dos.close();
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}