真正編程時如遇到Io操作時具體流對象使用的確定。
如:是使用字符流還是字節流,是否使用緩衝區等
1. 明確源和目的!
源和目的,也就是輸入和輸出。輸入和輸出分別對應兩個頂層父類,一個字節流一個字符流
源:InputStream Reader
目的:OutputStream Writer
2. 明確文件數據是否爲純文本!
是純文本!輸入或讀取則爲: Reader
輸出則爲:Writer
不是純文本! 輸入或讀取則爲:InputStream
輸出則爲:OutputStream
到此可以明確具體使用的體系! 是Reader、Writer 還是 InputStream、OutputStream
3. 明確具體的設備!
輸入設備:
硬盤:File
鍵盤:System.in
內存:數組
網絡:socket流
輸出設備:
硬盤:File
鍵盤:System.out
內存:數組
網絡:socket流
到此可以明確具體使用的對象。
如純文本文件的複製,則可以確定FileReader FileWriter
4 明確是否需要額外功能。
(1) 是否需要高效
是,Buffer 進行裝飾。
例: 文本文件(.txt)的複製。
可以確定是純文本 所以 確定體系爲 Reader-Writer
複製 。可以確定輸入設備(在此即爲讀取設備)和輸出設備都是 硬盤:File
所以到此可以確定具體使用對象:FileReader---FileWriter
如果需要其他功能 如高效 則進行buffer裝飾。
BufferedReader bufr = new BufferedReader(new FileReader("1.txt"));
對於操作其他類型文件可能還需要其他額外功能,如轉換 InputStreamReader等。