> DataInputStream 數據輸入流
DataOutputStream 數據輸出流
# 直接進行字符串的讀寫
使用數據流的writeUTF()和readUTF() 可以進行數據的格式化順序讀寫
通過DataOutputStream 向文件順序寫出 布爾值,整數和字符串。 然后再通過DataInputStream 順序讀入這些數據。
> 注: 要用DataInputStream 讀取一個文件,這個文件必須是由DataOutputStream 寫出的,否則會出現EOFException,因為DataOutputStream 在寫出的時候會做一些特殊標記,只有DataInputStream 才能成功的讀取。
```
package com.dodoke.util;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class TestSteam11 {
public static void main(String[] args) {
write();
read();
}
private static void write() {
File f = new File("d:/log.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();
}
}
private static void read() {
File f = new File("d:/log.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("讀取到布爾值:" + b);
System.out.println("讀取到整數:" + i);
System.out.println("讀取到字符串:" + str);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```