1. 程式人生 > 其它 >字元緩衝流(BufferedReader、BufferedWriter)

字元緩衝流(BufferedReader、BufferedWriter)

BufferedReader 字元流,輸入流,處理流BufferedWriter 字元流,輸出流,處理流。我們稱之為字元緩衝流

字元緩衝流預設有8192字元大小的的緩衝區,就是8192大小的字元陣列。

------------------------------------------

BufferReader

構造方法

  • BufferedReader(Reader in) 建立一個使用預設大小輸入緩衝區的緩衝字元輸入流
  • BufferedReader(Reader in, int sz) 建立一個使用指定大小輸入緩衝區的緩衝字元輸入流

成員方法

  • String readLine() 
    讀取一個文字行,讀到檔案末尾返回 null
//使用 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 = new
BufferedReader(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();
    }
}