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();
}
}
}