java I/O———字節流與字符流的區別聯繫

通過上述這一系列流的講解可以發現,使用字節流和字符流從代碼形式上區別不大。但是如果從實際開發來講,字節流一定是優先考慮的,只有在處理中文時纔會考慮字符流。因爲所有的字符都需要通過內存緩衝來進行處理。

所有字符流的操作,無論是寫入還是輸出,數據都先保存在緩存中。

範例:示範字節流輸出與字符流輸出區別

如果字符流不關閉,數據就有可能保存在緩存中並沒有輸出到目標源。這種情況下就必須強制刷新才能夠得到完整
數據。

範例:字符流刷新操作

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處理的時候,如果處理的是圖片、音樂、文字都可以使用字節流,而只有處理中文的時候纔會使用字符流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章