java基础:12.6 数据流 DataInputStream、DataOutputStream
DataInputStream 数据输入流
DataOutputStream 数据输出流
使用数据流的writeUTF()
和 readUTF()
可以进行数据的格式化顺序读写。
注: 要用DataInputStream 读取一个文件,这个文件必须是由DataOutputStream 写出的,否则会出现EOFException,因为DataOutputStream 在写出的时候会做一些特殊标记,只有DataInputStream 才能成功的读取。
package stream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class Main {
public static void main(String[] args) {
write();
read();
}
private static void read() {
File f =new File("f:/testfile/test.txt");
try (
FileInputStream fis = new FileInputStream(f);
DataInputStream dis =new DataInputStream(fis);
){
boolean b= dis.readBoolean();
int i = dis.readInt();
String str = dis.readUTF();
System.out.println("读取到整数:"+i);
System.out.println("读取到字符串:"+str);
System.out.println("读取到布尔值:"+b);
} catch (IOException e) {
e.printStackTrace();
}
}
private static void write() {
File f =new File("f:/testfile/test.txt");
try (
FileOutputStream fos = new FileOutputStream(f);
DataOutputStream dos =new DataOutputStream(fos);
){
dos.writeBoolean(true);
dos.writeInt(300);
dos.writeUTF("123 this is gareen");
} catch (IOException e) {
e.printStackTrace();
}
}
}