字元緩衝流(BufferedReader、BufferedWriter)
阿新 • • 發佈:2022-05-26
BufferedReader 是字元流,輸入流,處理流;BufferedWriter 是字元流,輸出流,處理流。我們稱之為字元緩衝流
字元緩衝流預設有8192字元大小的的緩衝區,就是8192大小的字元陣列。
------------------------------------------
BufferReader
構造方法
- BufferedReader(Reader in) 建立一個使用預設大小輸入緩衝區的緩衝字元輸入流
- BufferedReader(Reader in, int sz) 建立一個使用指定大小輸入緩衝區的緩衝字元輸入流
成員方法
-
String readLine()
//使用 BufferedReader 讀取檔案內容 public class Test03 { public static void main(String[] args) throws IOException { //1)建立流通道 //1.1 先建立字元流通道 FileReader fileReader = new FileReader("D:\\yexiao1793\\file\\test02.txt"); //1.2對字元流進行緩衝 BufferedReader bufferedReader = newBufferedReader(fileReader); //2)讀取,常用的方法是readLine()一次讀取一行, 讀到檔案末尾返回null String line = bufferedReader.readLine(); while ( line != null ){ System.out.println( line ); line = bufferedReader.readLine(); } //3)關閉 bufferedReader.close(); } }
------------------------------------------
BufferedWriter
構造方法
BufferedWriter(Writer out) 建立一個使用預設大小輸出緩衝區的緩衝字元輸出流
BufferedWriter(Writer out, int sz) 建立一個使用給定大小輸出緩衝區的新緩衝字元輸出流
成員方法
void newLine() 寫入一個行分隔符
//使用 BufferedWriter 把字元儲存到檔案中 public class Test04 { public static void main(String[] args) throws IOException { //1)建立流通道 BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D:\\yexiao1793\\file\\test02.txt", true)); //檔案存在則追加內容,無則建立 //2)通過字元流寫入資料 bufferedWriter.write("hello"); bufferedWriter.newLine(); // 換行 bufferedWriter.write("world"); //3)關閉 bufferedWriter.close(); } }
------------------------------------------
整合
// 完成文字檔案的複製 import java.io.*; public class CopyFile { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new FileReader("day09\\Test.java")); BufferedWriter bw = new BufferedWriter(new FileWriter("day09\\Copy.java")); String line; while ((line = br.readLine()) != null){ // 讀一行 bw.write(line); // 寫一行 bw.newLine(); // 換行 } br.close(); bw.close(); } }