首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java IO 體系演進:1.0 字節流與 1.1 字符流對比全解析

     編輯:Java 程式設計入門

版本演進脈絡

核心類對應表

版本輸入基類輸出基類數據單元緩衝國際化
Java 1.0InputStreamOutputStream8-bit 字節無不支援
Java 1.1ReaderWriter16-bit 字符有支援 Unicode

裝飾器模式實現

兩套體系均採用 Decorator 模式動態組合功能:

// 1.0 字節流鏈
InputStream in = new BufferedInputStream(new FileInputStream("a.txt"));

// 1.1 字符流鏈
Reader reader = new BufferedReader(new FileReader("a.txt"));

橋接轉換類

  • InputStreamReader:字節流 → 字符流(指定編碼)
  • OutputStreamWriter:字符流 → 字節流(指定編碼)
Reader r = new InputStreamReader(new FileInputStream("a.txt"), "UTF-8");
Writer w = new OutputStreamWriter(new FileOutputStream("b.txt"), "UTF-8");

實戰選型建議

  • 文本文件:優先 Reader/Writer + 指定編碼
  • 二進制文件(圖片、視頻、序列化對象):InputStream/OutputStream
  • 高性能讀寫:Buffered* 必加,大文件考慮 FileChannel + MappedByteBuffer
  • 網絡通信:協議層通常處理字節,應用層按需轉字符

代碼示例:帶緩衝文件寫入

try (OutputStream out = new BufferedOutputStream(new FileOutputStream("d:/123.txt"))) {
    String str = "hello skywang!";
    for (byte b : str.getBytes(StandardCharsets.UTF_8)) out.write(b);
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
功能1.0 字節流1.1 字符流
文件FileInputStream / FileOutputStreamFileReader / FileWriter
內存數組ByteArrayInputStream / ByteArrayOutputStreamCharArrayReader / CharArrayWriter
字符串StringBufferInputStream (棄用)StringReader / StringWriter
管道PipedInputStream / PipedOutputStreamPipedReader / PipedWriter
緩衝裝飾BufferedInputStream / BufferedOutputStreamBufferedReader / BufferedWriter
數據類型DataInputStream / DataOutputStream— (字符流不直接支援基本類型)