1. 程式人生 > >Java IO層次體系結構

Java IO層次體系結構

在整個Java.io包中最重要的就是5個類和一個介面。5個類指的是File、OutputStream、InputStream、Writer、Reader;一個介面指的是Serializable.掌握了這些IO的核心操作那麼對於Java中的IO體系也就有了一個初步的認識了

      Java I/O主要包括如下幾個層次,包含三個部分:

   1.流式部分――IO的主體部分;

   2.非流式部分――主要包含一些輔助流式部分的類,如:File類、RandomAccessFile類和FileDescriptor等類;

   3.其他類--檔案讀取部分的與安全相關的類,如:SerializablePermission類,以及與本地作業系統相關的檔案系統的類,如:FileSystem類和Win32FileSystem類和WinNTFileSystem類。

   主要的類如下:

     1. File(檔案特徵與管理):用於檔案或者目錄的描述資訊,例如生成新目錄,修改檔名,刪除檔案,判斷檔案所在路徑等。

     2. InputStream(二進位制格式操作):抽象類,基於位元組的輸入操作,是所有輸入流的父類。定義了所有輸入流都具有的共同特徵。

     3. OutputStream(二進位制格式操作):抽象類。基於位元組的輸出操作。是所有輸出流的父類。定義了所有輸出流都具有的共同特徵。

     Java中字元是採用Unicode標準,一個字元是16位,即一個字元使用兩個位元組來表示。為此,JAVA中引入了處理字元的流。

     4. Reader(檔案格式操作):抽象類,基於字元的輸入操作。

     5. Writer(檔案格式操作):抽象類,基於字元的輸出操作。

     6. RandomAccessFile(隨機檔案操作):它的功能豐富,可以從檔案的任意位置進行存取(輸入輸出)操作

     Java中IO流的大概體系結構如圖:

java輸入/輸出流體系中常用的流的分類表

分類 位元組輸入流 位元組輸出流 字元輸入流 字元輸出流
抽象基類 InputStream OutputStream Reader Writer
訪問檔案 FileInputStream FileOutputStream
FileReader FileWriter
訪問陣列 ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter
訪問管道 PipedInputStream PipedOutputStream PipedReader PipedWriter
訪問字串 StringReader StringWriter
緩衝流 BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter
轉換流 InputStreamReader OutputStreamWriter
物件流 ObjectInputStream ObjectOutputStream
抽象基類 FilterInputStream FilterOutputStream FilterReader FilterWriter
列印流 PrintStream PrintWriter
推回輸入流 PushbackInputStream PushbackReader
特殊流 DataInputStream DataOutputStream

注:表中粗體字所標出的類代表節點流,必須直接與指定的物理節點關聯:斜體字標出的類代表抽象基類,無法直接建立例項。

位元組流結構圖:

字元流結構圖: