Java BufferedReader 和 BufferedWriter

Java BufferedReader 和 BufferedWriter


概述

  • BufferedReader的read()方法讀取字符時會一次讀取若干字符到緩衝區, 然後逐個返回給程序, 降低讀取文件的次數, 提高效率
  • BufferedWriter的write()方法寫出字符時會先寫到緩衝區, 緩衝區寫滿時纔會寫到文件, 降低寫文件的次數, 提高效率

  • BufferedReader的readLine()方法可以讀取一行字符(不包含換行符號)
  • BufferedWriter的newLine()可以輸出一個跨平臺的換行符號”\r\n”

BufferedReader

  • 構造方法
構造方法 說明
BufferedReader(Reader in) 創建一個使用默認大小輸入緩衝區的緩衝字符輸入流
BufferedReader(Reader in, int sz) 創建一個使用指定大小輸入緩衝區的緩衝字符輸入流
  • 方法
方法 說明
read() 讀取單個字符
read(char[] cbuf, int off, int len) 將字符讀入數組的某一部分
readLine() 讀取一個文本行
ready() 判斷此流是否已準備好被讀取
close() 關閉該流並釋放與之關聯的所有資源

BufferedWriter

  • 構造方法
構造方法 說明
BufferedWriter(Writer out) 創建一個使用默認大小輸出緩衝區的緩衝字符輸出流
BufferedWriter(Writer out, int sz) 創建一個使用給定大小輸出緩衝區的新緩衝字符輸出流
  • 方法
方法 說明
newLine() 寫入一個行分隔符
write(char[] cbuf, int off, int len) 寫入字符數組的某一部分
write(int c) 寫入單個字符
write(String s, int off, int len) 寫入字符串的某一部分
flush() 刷新該流的緩衝
close() 關閉此流,但要先刷新它

拷貝文件示例

BufferedReader reader = null;
BufferedWriter writer = null;

try {
    // 創建輸入輸出流
    reader = new BufferedReader(new FileReader("E:/readme.txt"));
    writer = new BufferedWriter(new FileWriter("D:/temp.txt"));

    String line;

    // 讀寫數據,讀取一行,寫入一行
    while((line = reader.readLine()) != null) {
        writer.write(line);
        writer.newLine();
    }

    System.out.println("Done.");
} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {
        // 關閉輸入流
        if(reader != null) {
            reader.close();
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            // 關閉輸出流
            if(writer != null) {
                writer.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章