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

Java IO 套件完整學習指南:從流模型到 NIO 非阻塞 IO

     編輯:Java 程式設計入門

什麼是 IO?

IO(Input/Output) 是電腦與外部世界交換資料的介面。Java 核心庫 java.io 提供全面的 IO 功能:檔案讀寫、標準裝置輸出等。Java 採流(Stream)為基礎進行序列化輸入輸出;另在 java.nio 提供區塊(Block)IO,支援高效能傳輸、記憶體映射、非阻塞操作。

模型優點缺點
流 IO簡單易用、API 直觀效率較低、大量資料搬移開銷大
區塊 IO (NIO)高效能、支援零拷貝、非阻塞、選擇器程式設計複雜度高

Java IO 架構:裝飾者模式的經典應用

Java IO 體系分為兩大族群:

  • 位元組流:InputStream/OutputStream —— 處理二進位資料。
  • 字元流:Reader/Writer —— 自動處理字元編碼轉換,適合文字檔。

所有流類別皆成對出現(如 FileInputStream 對應 FileOutputStream)。核心設計採用裝飾者模式:

  • 資料源流:FileInputStream、ByteArrayInputStream 等,直接連接實體資料。
  • 裝飾功能流:BufferedInputStream、DataInputStream 等,繼承 FilterInputStream,動態疊加功能。

實戰範例:建立具緩衝的檔案輸入流

// 逐步組合
FileInputStream fileIn = new FileInputStream("C:/log.txt");
BufferedInputStream bufferedIn = new BufferedInputStream(fileIn);

// 一行式寫法
InputStream in = new BufferedInputStream(new FileInputStream("C:/log.txt"));

先建立資料源流,再依需求包裝裝飾流,彈性極高。

進階學習資源推薦

  • 官方教學:Introduction to Java I/O、I/O: Reading and Writing
  • NIO 入門:Getting started with new I/O(含中文版)

NIO 關鍵特性一覽

  • 通道:雙向傳輸管道(FileChannel、SocketChannel)。
  • 緩衝區:資料暫存容器(ByteBuffer 等),支援讀寫模式切換。
  • 選擇器:單一執行緒管理多通道非阻塞事件(Selector)。
  • 記憶體映射檔案:MappedByteBuffer 實現零拷貝高速讀寫。

掌握流與區塊兩大模型,並理解裝飾者模式如何賦予 IO 體系極致擴充性,是 Java 後端工程師的必修功課。

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