1. 程式人生 > >jdk 1.7系列(一) JAVA IO 簡史

jdk 1.7系列(一) JAVA IO 簡史

java 細節 了解 java7 file類 支持 org 需要 概念

JAVA IO簡史  

Java之所以能夠廣泛流傳,其強大、豐富、簡明的類庫功不可沒,編程時要解決的大多數問題幾乎都可以在其中找到支持。但經驗豐富的Java開發人員都知道,在老版本的Java中,有些地方不是那麽給力。曾經他們最崩潰的就是Java的輸入/輸出(I/O)API。

JAVA 1.0到1.3    

在Java早期版本(1.0 - 1.3)中沒有完整的 I/O 支持。在開發時很可能面臨以下問題:

  1. 沒有數據緩沖區或者通道的概念,開發人員要編程處理很多底層細節
  2. I/O 操作會被阻塞,擴展能力受限
  3. 所支持的字符集編碼有限,需要進行很多手工編碼工作來支持特定類型的硬件
  4. 不支持正則表達式, 數據處理困難

Java 1.4 引入 NIO 

2002年發布Java 1.4時 非阻塞 I/O ( NIO ) 以JSR-51的身份加入到Java語言中。有以下特性:

  1. 為 I/O 操作抽象出緩沖區和通道層
  2. 字符集的編碼和解碼能力
  3. 提供了能夠將文件映射為內存數據的接口
  4. 實現非阻塞 I/O 的能力
  5. 基於流行的 Perl 實現的正則表達式類庫 ( Perl - 正則表達式之王 想了解可訪問http://www.perl.org)

Java 1.7 NIO.2

NIO 無疑使Java向前邁出了一大步,但 I/O 變成對於文件系統中的文件和目錄處理而言,支持力度仍然不夠,java.io.File類中也還存在某些局限性,為了突破這些局限性,同時為了支持現代硬件和軟件 I/O 新範例,

由阿蘭-波特曼主導的JSR-203應運而生,最終變成了Java7中NIO.2 API。它有三個主要目標:

  1. 一個能批量獲取文件屬性的文件系統接口,去掉和特定文件系統相關的API,還有一個用於引入標準文件系統實現的服務提供者接口
  2. 提供一個套接字和文件都能夠進行異步(與輪詢、非阻塞相對) I/O操作的API
  3. 完成JSR-51中定義的套接字-通道功能,包括額外對綁定、選項配置和多播數據報的支持。

上面簡單的介紹了Java從最初的 I/O 到 NIO 再到NIO.2的發展歷程,後期會逐漸更新,如何使用java.nio包中的類去提升開發效率,博客僅作為學習交流使用,本人也是學習過程中,有不正確之處望各大博友指正,多謝支持。

jdk 1.7系列(一) JAVA IO 簡史