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

Java IO 學習總結(一):流體系架構、分類與核心類圖譜

     編輯:Java 綜合教學

Java IO 學習總結(一):流體系架構、分類與核心類圖譜

Java IO 是程序與外部世界(文件、網絡、控制台、內存)交換數據的橋樑。掌握其流的概念、分類體系、核心類繼承關係,是高效處理文件上傳下載、網絡通信、數據序列化的基石。

一、核心概念:什麼是流?

Java 中輸入輸出操作以流方式進行。流是 Java 內存中一組有序數據序列。
輸入流:數據從源(文件、內存、網絡、控制台)→ 讀入內存
輸出流:數據從內存 → 寫往目的地(文件、內存、網絡、控制台)
參照對象永遠是 Java 程序(內存)。

二、流的三大分類維度

分類維度兩大類別核心差異典型類
按數據流向輸入流 / 輸出流數據流向相對程序InputStream/Reader vs OutputStream/Writer
按處理單位字節流 / 字符流字節流:1 byte=8bit;字符流:1 char=2 byte=16bit(含編碼轉換)XxxInputStream vs XxxReader
按功能角色節點流 / 處理流(包裝流)節點流直連源頭;處理流包裝節點流增強功能(緩衝、轉換、對象序列化等)FileInputStream vs BufferedInputStream

三、字節流體系核心類圖譜

Java IO 字節流體系類圖

  • 抽象基類:InputStream、OutputStream
  • 文件節點流:FileInputStream、FileOutputStream
  • 緩衝處理流:BufferedInputStream、BufferedOutputStream(掛載數組緩衝,大幅提升性能)
  • 數據類型流:DataInputStream、DataOutputStream(按基本類型讀寫)
  • 對象序列化流:ObjectInputStream、ObjectOutputStream(持久化對象圖)
  • 轉換流:InputStreamReader、OutputStreamWriter(字節↔字符橋樑,指定編碼)
  • 內存流:ByteArrayInputStream、ByteArrayOutputStream
  • 打印流:PrintStream、PrintWriter(含 format/printf)

四、字符流體系核心類

  • 抽象基類:Reader、Writer
  • 文件節點流:FileReader、FileWriter
  • 緩衝處理流:BufferedReader(神級 readLine())、BufferedWriter
  • 轉換流:InputStreamReader、OutputStreamWriter
  • 內存流:CharArrayReader、CharArrayWriter、StringReader、StringWriter
  • 打印流:PrintWriter

五、選型黃金法則

  1. 操作文本文件(.txt、.xml、.json、.java、.properties)→ 字符流(Reader/Writer 系),自動處理編碼,支持按行讀取。
  2. 操作二進制文件(圖片、視頻、音頻、壓縮包、可執行文件)→ 字節流(InputStream/OutputStream 系),絕不可用字符流(編碼轉換會損壞數據)。
  3. 高頻讀寫 → 必加緩衝流(BufferedInputStream/BufferedReader),減少系統調用,提升數量級性能。
  4. 對象序列化/反序列化 → ObjectOutputStream/InputStream,實現 Serializable 接口。
  5. 指定編碼讀寫文本 → InputStreamReader/OutputStreamWriter 顯式指定 charset(UTF-8/GBK)。

六、下一篇預告

下一篇將深入實戰:FileInputStream/FileOutputStream 文件讀寫、圖片複製、緩衝流性能對比、轉換流編碼處理、序列化流對象持久化。敬請期待!

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved