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

Java IO 流體系總結:字節/字符、源頭/裝飾、六大分類視角

     編輯:Java 綜合教學

IO 流基礎分類

  • 方向:輸入流 (讀) / 輸出流 (寫)
  • 單位:字節流 (Byte) / 字符流 (Char)

字節流基類

  • InputStream (抽象)
  • OutputStream (抽象)

字節流繼承體系

字符流基類

  • Reader (抽象)
  • Writer (抽象)

字符流繼承體系

源頭流 vs 裝飾流 (非源頭流)

  • 源頭流:可獨立使用,直接連接資料源 (檔案、記憶體、管道等)
  • 裝飾流:需包裝其他流,提供增強功能 (緩衝、轉換、物件序列化等)

源頭流分類

六大視角認識流 (核心分類法)

1. 因「源頭所需」而存在

  • ByteArrayInputStream/OutputStream
  • CharArrayReader/Writer
  • StringReader/Writer
  • FileReader/Writer
  • PipedInputStream/OutputStream/Reader/Writer

2. 為「性能優化」- 緩衝

  • BufferedInputStream/OutputStream/Reader/Writer
  • LineNumberReader

3. 為「操作強化」- 直接讀寫基本類型/物件

  • BufferedReader/Writer (readLine/newLine)
  • PrintStream/PrintWriter (print/println)
  • DataInputStream/OutputStream (readInt/writeInt 等)
  • ObjectInputStream/OutputStream (物件序列化)

4. 為「數據過濾/轉換」

  • InputStreamReader:位元組 → 字符 (解碼)
  • OutputStreamWriter:字符 → 位元組 (編碼)
  • FileReader/Writer:內部封裝轉換
  • LineNumberReader:統計行號

5. 為「多源控制」

  • SequenceInputStream:串聯多個輸入源,依序讀取
  • PushbackInputStream/Reader:支援「退回」一個位元組/字符 (有限回溯)

6. 為「狀態記錄」 (mark/reset)

  • 基類提供 markSupported(), mark(), reset()
  • 通常緩衝流支援,非源頭流視包裝對象而定
  • FilterInputStream/OutputStream/Reader/Writer:自定義流模板,狀態記錄依賴源頭
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved