Java IO8:IO簡單總結

五月的倉頡發表於2015-10-20

位元組流、字元流繼承關係

前幾篇文章講解了位元組流、字元流的使用,不過Java提供給使用者的流類遠不止此,限於篇幅原因,沒辦法一一講解,而且也沒有必要一一講解,就像我在寫部落格的時候多次提到的,有問題的時候學會查JDK API即可。OK,雖然不一一講解每種流,我自己簡單畫了幾張UML圖,說明一下位元組輸入流、位元組輸出流、字元輸入流、字元輸出流這四個流類的子類繼承關係。

1、位元組輸入流

2、位元組輸出流

3、字元輸入流

4、字元輸出流

 

總結一下流類的使用

1、File是一些檔案/資料夾操作的源頭,File代表的就是檔案/資料夾本身,因此無論如何,使用IO的第一步是建議開發者根據路徑例項化出一個File

2、考慮使用字元流還是位元組流。操作文字一般使用字元流,即Reader和Writer;操作位元組檔案使用位元組流,即InputStream和OutputStream

3、選擇使用輸入流還是輸出流。把內容從檔案讀入Java記憶體使用輸入流,即Reader和InputStream;把內容從Java記憶體讀到檔案使用輸出流,即Writer和OutputStream

4、使用字元流使用BufferedReader和BufferedWriter,它們的建構函式中的引數分別是Reader和Writer,因此既可以例項化出FileReader和FileWriter,也可以例項化出InputStreamReader和OutputStreamWriter,作為建構函式的引數傳入BufferedReader和BufferedWriter

5、FileInputStream和FileOutputStream可以直接操作檔案的讀寫,它們沒有做快取

6、ObjectOutputStream和ObjectInputStream,它們分別以OutputStream和InputStream作為建構函式的引數,因此可以例項化出FileOutputStream和FileInputStream並傳入

另外,請知,IO是Java的23種設計模式中的裝飾器模式的典型應用,這在講解設計模式的時候會專門講到。

相關文章