DataOutputStream
數據輸出流允許應用程序以適當方式將基本 Java 數據類型寫入輸出流中。然後應用程序可以使用數據輸入流將數據讀入。
DataOutputStream
數據輸入流允許應用程序以與機器無關方式從底層輸入流中讀取基本 Java 數據類型。應用程序可以使用數據輸出流寫入稍後由數據輸入流讀取的數據。對於多線程訪問不一定是安全的。 線程安全是可選的,它由此類方法的使用者負責。
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class Test_Three {
public static void main(String[] args) throws Exception{
/**
* DataInputStream與DataOutputStream
*
* 1.DataInputStream → FileInputStream → InputStream
* (數據輸入流允許應用程序以機器無關的方式從底層輸入流中讀取基本java數據類型)
*
* DataOutStream → FileOutputStream → OutputStream
* (數據輸出流允許應用程序以適當方式將基本Java數據類型寫入輸出流中。
* 然後,應用程序可以使用數據輸入流將數據讀入。)
*
* 2.流:傳輸的二進制。
*/
/**
* 1.寫
*/
File file = new File("C:/person.data");
//文件輸出流
FileOutputStream outputStream = new FileOutputStream(file);
//數據輸出流
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
//給person.data這個文件寫入數據
dataOutputStream.writeInt(123);
dataOutputStream.writeUTF("寫入中文,ok");
dataOutputStream.writeFloat(234.4f);
//關閉流
dataOutputStream.flush();
dataOutputStream.close();
/**
* 2.讀
*/
//文件輸入流
FileInputStream inputStream = new FileInputStream(file);
//數據輸入流
DataInputStream dataInputStream = new DataInputStream(inputStream);
//讀出
int firstInt = dataInputStream.readInt();
String str = dataInputStream.readUTF();
float secFlt = dataInputStream.readFloat();
System.out.println(firstInt+"---"+str+"-----"+secFlt);
dataInputStream.close();
/**
* ★注意事項:讀取和寫入的順序必須一樣,否則拋出錯誤,也不能少讀取。
*/
}
}