1. 程式人生 > >Java中的IO流體系

Java中的IO流體系

 Java為我們提供了多種多樣的IO流,我們可以根據不同的功能及效能要求挑選合適的IO流,如圖10-7所示,為Java中IO流類的體系。

      注:這裡只列出常用的類,詳情可以參考JDK API文件。粗體標註為常用!

圖10-7 Java中的IO流體系.png

圖10-7 Java中的IO流體系

     從上圖發現,很多流都是成對出現的,比如:FileInputStream/FileOutputStream,顯然是對檔案做輸入和輸出操作的。我們下面簡單做個總結:

     1. InputStream/OutputStream

        位元組流的抽象類。

     2. Reader/Writer

        字元流的抽象類。

     3. FileInputStream/FileOutputStream

        節點流:以位元組為單位直接操作“檔案”。

     4. ByteArrayInputStream/ByteArrayOutputStream

        節點流:以位元組為單位直接操作“位元組陣列物件”。

     5. ObjectInputStream/ObjectOutputStream

        處理流:以位元組為單位直接操作“物件”。

     6. DataInputStream/DataOutputStream

        處理流:以位元組為單位直接操作“基本資料型別與字串型別”。

     7. FileReader/FileWriter

        節點流:以字元為單位直接操作“文字檔案”(注意:只能讀寫文字檔案)。

     8. BufferedReader/BufferedWriter

        處理流:將Reader/Writer物件進行包裝,增加快取功能,提高讀寫效率。

     9. BufferedInputStream/BufferedOutputStream

        處理流:將InputStream/OutputStream物件進行包裝,增加快取功能,提高 讀寫效率。

     10. InputStreamReader/OutputStreamWriter

        處理流:將位元組流物件轉化成字元流物件。

     11. PrintStream

        處理流:將OutputStream進行包裝,可以方便地輸出字元,更加靈活。