字元流
- 使用位元組流讀取中文時,會出現一些問題。由於中文在編碼中佔2~3個位元組,一個個位元組讀取輸出時會出現亂碼問題。 – 引入字元流
- 字元流的構造方法作用和位元組流的一樣,以下做個複習:
- 建立一個字元流物件
- 根據傳遞的檔案路徑,建立檔案
- 將字元流物件指向建立的檔案物件
字元輸入流(Reader)
- 抽象類,Reader 是最頂層父類
- 一些共性方法:
public int read()
;public int read(char[] cbuf)
讀取單個或多個字元pbulic void close()
- 使用步驟
- 建立 FileReader 物件,傳遞要讀取的檔案。
- 呼叫 read() 方法,讀取相應的內容
- 釋放資源
字元輸出流 (Writer)
抽象類,Writer 是最頂層父類
一些共性方法:
public int write()
;public int write(char[] cbuf)
寫入單個或多個字元pbulic void close()
使用步驟
- 建立 FileWrite 物件,傳遞要讀取的檔案。
- 呼叫 write() 方法,讀取相應的內容
- 釋放資源
程式碼示例
FileWriter fw = new FileWriter("D:\\Programming\\demo02test.txt",true); // 寫單個字元 fw.write('你'); // 寫多個字元 // 第一種寫法 public void write(char[] c, int off, int len) String str = "我是鮑里斯"; char[] chars = str.toCharArray(); int len = chars.length; fw.write(chars,0,len); // 第二種寫法 public void write(String, int off, int len) fw.write("\r\n"); // 換行 fw.write("woshibaolisi",0,9); fw.close();
- 注意: 如果 fw.close() 不寫資料只是儲存到緩衝區,不會儲存到檔案。這與 FileOutputStream 不同。
close() 和 flush() 方法的區別
- flush:重新整理緩衝區,流物件可以繼續使用
- close:重新整理緩衝區,然後通知系統釋放資源,流物件無法繼續使用。
本作品採用《CC 協議》,轉載必須註明作者和本文連結