Java IO 以 流 為抽象,將數據從源(文件、內存、網絡、控制台)讀入內存,或從內存寫出到目標。流是有序數據序列,隨時間操作源的不同部分。
| 維度 | 分類 | 說明 |
|---|---|---|
| 數據流向 | 輸入流 | 源 → 程序(如 FileInputStream、FileReader) |
| 輸出流 | 程序 → 目標(如 FileOutputStream、FileWriter) | |
| 處理單位 | 字節流 | 最小單位 1 byte(8 bit),處理圖片、視頻、二進制文件 |
| 字符流 | 最小單位 1 char(2 byte = 16 bit),處理文本,自動編解碼 | |
| 功能角色 | 節點流 | 直接操作源/目標,無包裝(如 FileInputStream) |
| 處理流 | 包裝節點流,提供增強功能(如 BufferedInputStream 添加緩衝) |

InputStream / OutputStreamReader / WriterFileInputStream、FileOutputStream、FileReader、FileWriter、BufferedInputStream、BufferedReaderInputStreamReader / OutputStreamWriter 橋接字節與字符流。下一篇將深入講解:BufferedReader.readLine() 原理、自定義緩衝讀取器、裝飾器模式在 IO 中的應用、序列化與打印流等進階主題。