Java 中兩種基本的數據類型:byte(8 位)與 char(16 位)。
處理二進制數據,核心類:
FileInputStream:從文件順序讀取字節。FileOutputStream:向文件順序寫入字節。常用方法:read() 讀取單字節,close() 關閉流。複製文件範例:
InputStream in = new FileInputStream("E:/JavaI/Blue.jpg");
OutputStream out = new FileOutputStream("E:/JavaI/Blue_copy.jpg");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
in.close(); out.close(); // 先關輸入再關輸出
專為文本設計,核心類:
FileReader / FileWriter:按字符讀寫。Reader rd = new FileReader("E:/JavaI/JC.rar");
Writer wt = new FileWriter("E:/JavaI/JC-1.rar");
int c;
while ((c = rd.read()) != -1) {
wt.write(c);
}
rd.close(); wt.close();
| 特性 | 字節流 | 字符流 |
|---|---|---|
| 處理單位 | 字節(8 bit) | 字符(16 bit) |
| 適用場景 | 圖片、音視頻、二進制文件 | 純文本文件 |
| 編碼處理 | 無自動編碼轉換 | 自動按默認字符集編解碼 |
| 亂碼風險 | 不處理文本則無亂碼 | 若用於二進制數據會產生亂碼 |
字符流是為彌補字節流處理文本不便而引入,實際上字符流底層仍由字節流實現,並加入了編碼轉換邏輯。