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

Java I/O 體系架構全景:位元組流與字元流雙軌並行設計

     編輯:Java 程式設計入門

Stream 核心抽象

Stream 代表「有能力產出資料的來源」或「有能力接收資料的目的地」。Java I/O 所有流分兩大體系:

一、位元組流(Byte Stream)—— 處理二進位資料

方向抽象基類主要實作類別用途
輸入InputStreamByteArrayInputStream記憶體緩衝區作為輸入源
StringBufferInputStream(過時)String 物件作為輸入源
FileInputStream檔案讀取
PipedInputStream線程間管道通訊
SequenceInputStream合併多個輸入流
輸出OutputStreamByteArrayOutputStream寫入記憶體緩衝區
FileOutputStream檔案寫入
PipedOutputStream線程間管道通訊
SequenceOutputStream合併多個輸出流

二、字元流(Character Stream)—— 處理 Unicode 文字

方向抽象基類主要實作類別對應位元組流
輸入ReaderCharArrayReaderByteArrayInputStream
StringReaderStringBufferInputStream
FileReaderFileInputStream
PipedReaderPipedInputStream
輸出WriterCharArrayWriterByteArrayOutputStream
StringWriter無對應
FileWriterFileOutputStream
PipedWriterPipedOutputStream

設計精髓:裝飾模式(Wrapper Pattern)

  • 字元流建構於位元組流之上:FileReader 內部包裝 FileInputStream + 字集解碼器。
  • 功能增強透過層層包裝:BufferedReader 包裝 FileReader 提供緩衝與逐行讀取。
  • 標準轉換橋樑:InputStreamReader(位元組→字元)、OutputStreamWriter(字元→位元組),指定編碼(UTF-8、Big5 等)。

實務選型指南

  • 二進位檔(圖片、聲音、序列化物件)→ 位元組流
  • 文字檔(原始碼、設定檔、日誌)→ 字元流 + 明確編碼
  • 高效能讀寫 → 加 Buffered 前綴類別
  • Java 7+ → Files、Paths、try-with-resources 簡化資源管理
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved