基本数据类型处理流(提供了可以获取所有Java数据类型的方法+String):
输入流:DataInputStream
输出流:DataOutputStream
下面为实现文件读取的Demo:
public class DataDemo02 {
public static void main(String[] args) throws IOException {
byte[] data = write();
read(data);
}
/**
* 从字节数组读取数据+类型
*/
public static void read(byte[] src) throws IOException {
//选择流
DataInputStream dis = new DataInputStream(
new BufferedInputStream(
new ByteArrayInputStream(src)
)
);
//操作,读取的顺序与写出一致,必须存在才能读取。数据不一致会导致读出不正确。
double num1 = dis.readDouble();
long num2 = dis.readLong();
String str = dis.readUTF();
dis.close();
System.out.println(num1);
System.out.println(num2);
System.out.println(str);
}
public static byte[] write() throws IOException {
//目标数组
byte[] dest = null;
double point = 2.5;
long num = 100L;
String str = "学习";
//选择流
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(
new BufferedOutputStream(bos)
);
//操作,这里写出的顺序为读取做准备
dos.writeDouble(point);
dos.writeLong(num);
dos.writeUTF(str);
dos.flush();
dest = bos.toByteArray();
dos.close();
return dest;
}
}
执行结果如下:
如果读取的顺序与写出不一致,会导致读出不正确。