12, IO 總結
1, Java IO 各類間的繼承關系圖
2, 在 Java 中使用 File 類表示檔案本身,可以直接用該類完成檔案的建立,删除等操作。
3, RandomAccessFile 類可以從指定的位置開始讀取資訊,但是要求檔案中各個資料的儲存長度必須固定。
4, 輸入/輸出流, 位元組流 : OutputStream, InputStream(未用到緩沖區)。字元流 : Writer, Reader (使用到緩沖區)
5, 在 IO 包中,可以使用 OutputStreamWriter 和 InputStreamReader 完成字元流與位元組流之間的轉換操作
6, 使用 ByteArrayInputStream 和 ByteArrayOutputStream 類 可以對記憶體進行輸入/輸出操作
7, 線上程之間進行輸入/輸出操作,主要使用 PipedOutputStream 和 PipedInputStream 類
8, 在 IO 中輸出,使用列印流 (PrintStream, PrintWriter),可以友善的輸出各種類型的資料。
9, System 類提供了 3 個支援 IO 操作的常量。即 : out, err, in
System.out, System.err, System.in, -- setOut, setIn, setErr
10, BufferReader 可以直接從緩沖區中讀取資料
11, Scanner 類,可以友善地進行輸入流操作
12, 資料操作流提供了與平台無關的資料操作, 主要 : DataOutputStream 和 DataInputStream
13, 使用合并流 (SequenceInputStream) 可以将兩個檔案的内容進行合并
14, 其他 : 壓縮流, 回退流,
15, 造成亂碼的根本原因在于 : 程式編碼 與 本地編碼 的不統一
16, 對象序列化可以将記憶體中的對象轉化為二進制資料,但對象所在的類必須實作 Serializable 接口。transient,此屬性内容不會被序列化
17, 對象的輸入輸出主要使用 ObjectInputStream 和 ObjectOutputStream 類。