BufferedReader / BufferedWriter
高效讀寫、支援輸入換行符、可一次寫一行讀一行
BufferedReader
小案例
第一種方式讀取:
package com.iopractise;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
* 使用字元緩存流讀取檔案
*/
public class Demo13 {
public static void main(String[] args) throws IOException {
//1.建立緩存流
FileReader fr = new FileReader("d:\\ccc.txt");
BufferedReader br = new BufferedReader(fr);
//2.讀取
char[] buf = new char[1024];
int count=0;
while ((count=br.read(buf))!=-1){
System.out.println(new String(buf,0,count));
}
//3.關閉資源
br.close();//相當于關閉了FileReader
System.out.println("執行完畢");
}
}
運作結果:
中國加油!中國加油!中國加油!中國加油!中國加油!中國加油!中國加油!中國加油!中國加油!中國加油!
執行完畢
小案例:
第二種方式:一行一行的讀取
package com.iopractise;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
/**
* 使用字元緩存流讀取檔案
*/
public class Demo14 {
public static void main(String[] args) throws IOException {
//1.建立緩存流
FileReader fr = new FileReader("d:\\ccc.txt");
BufferedReader br = new BufferedReader(fr);
//2.讀取
String line=null;
while ((line=br.readLine())!=null){
System.out.println(line);
}
//3.關閉資源
br.close();//相當于關閉了FileReader
System.out.println("執行完畢");
}
}
執行結果:
中國加油!中國加油!中國加油!中國加油!中國加油!
BufferedWriter
package com.iopractise;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
/**
* BufferWriter的使用
*
*/
public class Demo15 {
public static void main(String[] args) throws IOException {
// 1. 建立BufferedWriter對象
FileWriter fw = new FileWriter("d:\\ddd.txt");
BufferedWriter bw = new BufferedWriter(fw);
// 2. 寫入
for(int i = 0; i < 10; i ++){
bw.write("張家口加油!!!");
bw.newLine(); // 寫入一個換行符
bw.flush();
}
// 3. 關閉
bw.close(); // 此時會自動關閉fw
}
}
運作結果:打開對應生成的檔案:
張家口加油!!!