/*
通过缓冲区复制文件。
*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyTextByBuf {
public static void main(String[] args) {
BufferedReader bfr=null;
BufferedWriter bfw=null;
try{
bfr=new BufferedReader(new FileReader("F:\\JAVAWorkplace\\IO流\\src\\CopyText.java"));
bfw=new BufferedWriter(new FileWriter("buf_copy.txt"));
String line=null;
/*
readLine()方法原理:
无论是读一行,或者是读取多个字符,其实最终都是在硬盘上一个一个读取。
所以最终使用的还是read()方法一次读一个的方法。
比read()方法高效很多。
*/
while((line=bfr.readLine())!=null)
{
bfw.write(line);
bfw.flush();
bfw.newLine();
}
}
catch(IOException e){
throw new RuntimeException("读写异常");
}
finally{
if(bfr!=null)
try {
bfr.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
if(bfw!=null)
try {
bfw.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
刚开始运行的结果让我感到很是不爽:
后来发现,加上 newLine() 语句后才会换行,看着就舒服: