BufferedReader: 字符缓冲输入流(也叫高效字符输入流)
public String readLine(); 一次读取一行数据并返回读取到的内容, 读不到返回null BufferedWriter: 字符缓冲输出流(也叫高效字符输出流) public void newLine(); 根据当前操作系统给出对应的换行符.
Windows换行符
Mac换行符
Unix换行符
\r\n
\r
\n
特点:字符缓冲流自带有缓冲区, 大小为8192个字符, 也就是16KB.
注意: 字符流只能拷贝纯文本文件.
public class CopyFile1 {
public static void main(String[] args) throws IOException {
//1. 创建字符缓冲输入流对象, 关联数据源文件.
BufferedReader br = new BufferedReader(new FileReader("11.txt"));
//2. 创建字符缓冲输出流对象, 关联目的地文件.
BufferedWriter bw = new BufferedWriter(new FileWriter("12.txt"));
//3. 定义变量, 记录读取到的数据.
int len;
//4. 循环读取, 只要条件满足就一直读, 并将读取到的内容赋值给变量.
while((len=br.read())!=-1){
bw.write(len);
}
//5. 释放资源
br.close();
bw.close();
}
}
public class CopyFile2 {
public static void main(String[] args) throws IOException {
//1. 创建字符缓冲输入流对象, 关联数据源文件.
BufferedReader br = new BufferedReader(new FileReader("1.txt"));
//2. 创建字符缓冲输出流对象, 关联目的地文件.
BufferedWriter bw = new BufferedWriter(new FileWriter("2.txt"));
//3. 定义变量, 记录读取到的内容.
String s;
//4. 循环读取, 只要条件满足就一直读, 并将读取到的内容赋值给变量.
while((s=br.readLine())!=null){
bw.write(s);
//千万注意一个小细节, 你特别容易忽略
//千万别忘记换行
bw.newLine();
}
//5. 释放资源.
br.close();
bw.close();
}
}