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

Java IO 流體系架構深度解析:字節流與字符流完整指南

     編輯:Java 相關知識

Java IO 設計初衷

Java IO 系統旨在實現文件、控制台、網絡設備等 IO 設備的通信。早期 Java 1.0 僅提供字節流(如 FileInputStream/FileOutputStream),Java 1.1 為支援國際化引入字符流(基於 Unicode),雙流體系並存至今。

核心概念

什麼是流?

流是對數據傳輸的抽象,本質是數據的有序序列,支持輸入/輸出操作。

分類維度

  • 按流向:輸入流(讀取)、輸出流(寫入)
  • 按處理單位:字節流(1 Byte = 8 bits,有符號)、字符流(2 Bytes = 16 bits,無符號)

字節流體系架構

輸入流體系

  • InputStream:字節輸入流超類,提供 read() 方法
  • FileInputStream:文件讀取常用類
  • BufferedInputStream:緩衝輸入流,提升讀取效能
  • DataInputStream:數據輸入流,支持基本類型讀取
  • ObjectInputStream:對象輸入流,配合 ObjectOutputStream 實現序列化
  • PipedInputStream:管道輸入流,支援線程間通信

輸出流體系

  • OutputStream:字節輸出流超類,提供 write() 方法
  • FileOutputStream:文件寫入常用類
  • BufferedOutputStream:緩衝輸出流
  • PrintStream:打印流,提供格式化輸出
  • DataOutputStream:數據輸出流
  • ObjectOutputStream:對象輸出流

字節流關聯圖

字符流體系架構

輸入流體系

  • Reader:字符輸入流超類
  • FileReader:字符文件讀取
  • BufferedReader:緩衝字符讀取,支持 readLine()
  • InputStreamReader:字節轉字符橋梁,指定 charset 解碼

輸出流體系

  • Writer:字符輸出流超類
  • FileWriter:字符文件寫入
  • BufferedWriter:緩衝字符寫入
  • OutputStreamWriter:字節轉字符橋梁,指定 charset 編碼
  • PrintWriter:打印字符流

字符流關聯圖

字節流與字符流轉換機制

  • FileReader → InputStreamReader → InputStream:構造函數鏈傳遞 InputStream,內部解碼
  • FileWriter → OutputStreamWriter → OutputStream:構造函數鏈傳遞 OutputStream,內部編碼

對應關係總結

掌握整體架構後,可針對具類深入學習其用法、源碼實現等進階內容。

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