文本IO 二進制IO
阿新 • • 發佈:2017-08-29
cto 輸出 進制數 都是 style margin gin 讀取數據 str
一、文本IO
- 使用PrintWriter寫入文件後,必須調用close(),否則數據不能正確保存在文件中。
- Scanner的next()讀取一個由分隔符分隔的字符串,nextLine()讀取以換行符結束的行。
- 標記讀取不會讀取分隔符,所以nextLine()會把所有標記也算作一個標記進行讀取。
- useDelimiter(String s)可以改變分隔符,默認是空格。
- 從URL讀取數據,創建URL對象,調用url.openStream(),就可以用Scanner讀取url.openStream()中的數據了。
二、二進制IO
1. 文本文件是由字符序列構成的,二進制文件有bit序列構成,不涉及編碼、解碼,效率高。在計算機中,本質上,所有的文件都是二進制文件。文本IO建立在二進制IO上,提供了一層抽象,用於字符層次編碼,解碼。
2.1)FileInputStream、FileOutputStream為基本輸入輸出,只能用來讀取字節,即最基本的讀取二進制數據。
2)DataInputStream、DataOutputStream讀取寫入字節,將他們轉換為合適的基本類型或字符串。
3)java中字符用統一碼表示,一個統一碼由2個字節構成。
4)ObjectInputStream、ObjectOutputStream讀取寫入對象,包含了DataInputStream、DataOutputStream的所有功能。對象需要實現Serializable接口才可以被寫入,即可序列化的,對象中存在不能被序列化的對象時,不可以被序列化,需要在不能被序列化的對象成員前加transient關鍵字,靜態變量不會被序列化。
3.RandomAccessFile,隨機訪問文件。
文本IO 二進制IO