Java中的IO流體系
Java為我們提供了多種多樣的IO流,我們可以根據不同的功能及效能要求挑選合適的IO流,如圖10-7所示,為Java中IO流類的體系。
注:這裡只列出常用的類,詳情可以參考JDK API文件。粗體標註為常用!
圖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進行包裝,可以方便地輸出字元,更加靈活。