DataInputStream 数据输入流
允许应用程序从底层输入流中读取基本Java数据类型,对于多线程访问不一定是安全的。
DataOutputStream 数据输出流
允许应用程序将基本Java数据类型写入输出流中。
package com.file;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
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;
import java.io.InputStream;
import java.io.OutputStream;
public class DataStreamDemo {
public static void main(String[] args) {
write();
read();
}
public static void write() {
File file = new File("E:\\Java_IO\\data.dat");
try {
OutputStream out = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(out);
DataOutputStream dos = new DataOutputStream(bos);
dos.writeInt(10); //写一个整型占4个字节
dos.writeByte(1); //写一个字节占1个字节
dos.writeUTF("中");
dos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void read() {
File file = new File("E:\\Java_IO\\data.dat");
try {
InputStream in = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(in);
DataInputStream dis = new DataInputStream(bis);
int num = dis.readInt(); //读取时要按照写入的类型的顺序读取;否则读取出来的值就变了
byte b = dis.readByte();
String s = dis.readUTF();
dis.close();
System.out.println(num+","+b+","+s);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}