通過上述這一系列流的講解可以發現,使用字節流和字符流從代碼形式上區別不大。但是如果從實際開發來講,字節流一定是優先考慮的,只有在處理中文時纔會考慮字符流。因爲所有的字符都需要通過內存緩衝來進行處理。
所有字符流的操作,無論是寫入還是輸出,數據都先保存在緩存中。
範例:示範字節流輸出與字符流輸出區別
如果字符流不關閉,數據就有可能保存在緩存中並沒有輸出到目標源。這種情況下就必須強制刷新才能夠得到完整
數據。
範例:字符流刷新操作
package www.bit.java.io;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
public class TestWriter {
public static void main(String[] args) throws Exception {
File file = new File(File.separator + "Users" + File.separator + "yuisama" +
File.separator + "Desktop"
+ File.separator + "hello.txt");
if (!file.getParentFile().exists()) { // 必須保證父目錄存在
file.getParentFile().mkdirs() ; // 創建多級父目錄
}
String msg = "I'm a bad man’\n" ;
Writer out = new FileWriter(file,true) ;
out.write(msg) ;
out.flush(); // 寫上此語句表示強制清空緩衝內容,所有內容都輸出。
}
}
在以後進行IO處理的時候,如果處理的是圖片、音樂、文字都可以使用字節流,而只有處理中文的時候纔會使用字符流