例子程序:
package io; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException; public class TestDataStream { public static void main(String[] args) {
/**
* 在内存里创建一个字节数组,ByteArrayOutputStream这根管道是怼到了内存上
*/
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//将基本 Java 数据类型写入输出流中
DataOutputStream dos = new DataOutputStream(baos);
try {
//写入double类型,8个字节
dos.writeDouble(Math.random());
dos.writeBoolean(true);//布尔类型1个字节 /**
* 相当于这根管道怼到了ByteArrayOutputStream上边。拿到了字节数组在内存的引用。
*/
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
//输入流剩余可读字节数
System.out.println(bais.available());//一共9个字节 DataInputStream dis = new DataInputStream(bais); System.out.println(dis.readDouble());
System.out.println(dis.readBoolean()); /**
* colse之后,内存的字节数组没了。
*/
dos.close();
dis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}