數據流
與機器無關的操作Java基本數據類型。網絡傳輸會用。
-
DataInputStream
數據輸入流允許應用程序以與機器無關的方式從底層輸入流中讀取Java基本數據類型。應用程序可以使用數據輸出流寫入稍后由數據輸入流讀取的數據。DataInputStream對於多線程訪問不一定是安全的。線程安全是可選的,他由此類方法是使用者負責。 -
DataOutputStream
數據輸出流允許應用程序以適當的方式將基本Java數據類型寫入輸出流中。然后,應用程序可以使用數據輸入流將數據讀入。
代碼示例
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 org.junit.Test;
public class DataStreamDemo {
// 向文件中寫入數據
@Test
public void writeData() {
File file = new File("F:/test.txt");
try {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
DataOutputStream dos = new DataOutputStream(bos);
dos.writeInt(10);// 寫入4個字節
dos.writeByte(5);// 寫入一個字節
dos.writeUTF("愛");
dos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}// writeData
// 從文件中讀取數據
@Test
public void readData() {
File file = new File("F:/test.txt");
try {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
DataInputStream dis = new DataInputStream(bis);
// 讀的時候應按照寫入的順序
int num = dis.readInt();
byte b = dis.readByte();
String str = dis.readUTF();
System.out.println(num + "," + b + "," + str);
dis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}// readData
}
