大佬的理解->《Java IO(五) -- 字符流進階及BufferedWriter,BufferedReader》
1、BufferedReader
BufferedReader高效字符流讀取檔案基本用法,自帶緩沖區,讀取檔案效率高,支持逐行讀取;
1.1 初始化
| BufferedReader(Reader in) | 默認緩沖字符陣列(大小8192) |
|---|---|
| BufferedReader(Reader in, int sz) | 自定義緩沖字符陣列大小 |
1.2 讀取檔案內容
buffer1.txt檔案內容
張三,23
李四,34
王五,34
逐行讀取案例
try(BufferedReader bfrd = new BufferedReader(new FileReader("D:/test/buffer1.txt"))){
//使用逐行讀取方式,讀取檔案
String readLinestr = bfrd.readLine();
//當讀取內容為null的時候跳出回圈
while(readLinestr != null){
System.out.println(readLinestr);
//繼續讀取下一行
readLinestr = bfrd.readLine();
}
System.out.println("逐行讀取成功");
}catch (Exception e){
e.printStackTrace();
}
運行結果
張三,23
李四,34
王五,34
逐行讀取成功
1.3 默認緩沖區
//默認緩沖區的大小為:8192個字符
原始碼
public BufferedReader(Reader in) {
this(in, defaultCharBufferSize); //使用默認字符陣列容量
}
private static int defaultCharBufferSize = 8192; //默認最大值為8192
2、BufferedWriter
BufferedWriter高效字符流寫入檔案基本用法,可以直接寫整行,還可以換行(newLine());
2.1 初始化
| BufferedWriter(Writer out) | 默認緩沖字符陣列(大小8192) |
|---|---|
| BufferedWriter(Writer out, int sz) | 自定義緩沖字符陣列大小 |
2.2寫入檔案內容
try(BufferedWriter bfwt = new BufferedWriter(new FileWriter("D:/test/buffer2.txt"))){
//寫入內容
String string = "KH96,正在學習高效字符流寫入";
//寫入
bfwt.write(string);
//換行
bfwt.newLine();
bfwt.write(string+",新的一行");
//重繪緩沖區
bfwt.flush();
System.out.println("高效字符寫入完成");
}catch (Exception e){
e.printStackTrace();
}
3、InputStreamReader
| InputStreamReader(InputStream in) | 默認本地字符集 |
|---|---|
| InputStreamReader(InputStream in, String charsetName) | 自定義字符集 |
BufferedReader 通過InputStreamReader可以指定字符集讀取檔案的內容;
try(
//InputStreamReader提供了一個指定字符集的構造方法,創建輸入字符物件,必須指定字符集跟檔案字符集一致
BufferedReader bfrd = new BufferedReader(new InputStreamReader(new FileInputStream("D:/test/end1.txt"),"gbk"))
){
//使用逐行讀取方式,讀取檔案
String readLinestr = bfrd.readLine();
//回圈讀取,讀取到檔案末尾,回傳null
while(readLinestr != null){
System.out.println(readLinestr);
//繼續讀取下一行
readLinestr = bfrd.readLine();
}
System.out.println("逐行讀取成功");
}catch (Exception e) {
e.printStackTrace();
}
4、 OutputStreamWriter
| OutputStreamWriter(OutputStream out) | 默認本地字符集 |
|---|---|
| OutputStreamWriter(OutputStream out, String charsetName) | 自定義字符集 |
BufferedWriter 通過OutputStreamWriter可以指定字符集寫入檔案的內容;
try(
BufferedWriter bfrwt = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:/test/end1.txt"),"gbk"))
){
String str = "測驗指定檔案字符集為gbk寫入";
bfrwt.write(str);
System.out.println("檔案寫入完成!!!");
}catch (Exception e) {
e.printStackTrace();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/492458.html
標籤:Java
上一篇:檔案輸入輸出處理(三)-字符流
下一篇:Python 實作校園網自動登錄
