IO中的BufferedWriter和BufferedReader以及讀取時出現亂碼的問題
-
BufferedWriter作用:
将文本寫入字元輸出流,緩沖各個字元,進而提供單個字元、數組和字元串的高效寫入。
其有哪些方法:
close() : 關閉此流,但要先重新整理它。
flush() : 重新整理該流的緩沖。
newLine() : 寫入一個行分隔符。
write(char[] cbuf, int off, int len) : 寫入字元數組的某一部分。
write(int c) : 寫入單個字元。
write(String s, int off, int len) : 寫入字元串的某一部分。
- BufferedReader作用:
讀取文本檔案 ,會先盡量從檔案中讀入字元資料并置入緩沖區,而之後若使用read()方法,會先從緩沖區中進行讀取。
實戰代碼:
public class Test {
public static void main(String[] args) throws Exception {
//BufferedWriter将字元寫入到檔案中
FileWriter fw = new FileWriter("E:\\Buffered.txt");//建立一個檔案
BufferedWriter bufw = new BufferedWriter(fw);
bufw.write("hello world");
bufw.newLine(); //作用是換行
bufw.write("this is test");
bufw.newLine();
bufw.write("你好,這裡是測試!");
bufw.flush();
bufw.close();
//讀取檔案,然後進行轉碼,防止出現亂碼的問題
InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\Buffered.txt"), "UTF-8");
//建立字元緩沖輸入流對象
BufferedReader br = new BufferedReader(isr);
//讀資料
//一次讀取一個字元數組
char[] chs = new char[1024];
int len = 0;
while ((len = br.read(chs)) != -1) {
System.out.println(new String(chs, 0, len));
}
//釋放資源
br.close();
}
}
檢視運作結果:
檢視E盤是否成功建立了這個檔案:
成功!!!