本次博客我们来介绍IO流中的BufferedReader 和 BufferedWriter,介绍它们的用法。
BufferedReader
- BufferedReader 属于字符流,是按照字符来读取数据的。
- 关闭处理流时,只需要关闭外层流即可。
public class BufferedReader_ {
public static void main(String[] args) throws IOException {
String filePath = "d:\\111\\story.txt";
//创建bufferedReader
BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
String line;
//1.bufferedReader.readLine() 是按行读取文件
//2.当返回null时,表示文件读取完毕。
while ((line = bufferedReader.readLine()) != null){
System.out.println(line);
}
//关闭流,这里注意,只需要关闭 BufferedReader ,因为底层会自动的去关闭 节点流
bufferedReader.close();
}
}
BufferedWriter
- BufferedWriter 属于字符流,是按照字符来写入数据的。
- 关闭处理流时,只需要关闭外层流即可。
public class BufferedWriter_ {
public static void main(String[] args) throws IOException {
String filePath = "d:\\111\\news2.txt";
//创建BufferedWriter
//1.new FileWriter(filePath,true) 表示以追加的方式写入
//2.new FileWriter(filePath) 表示以覆盖的方式写入
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(filePath,true));
bufferedWriter.write("hello,计算机科学");
bufferedWriter.newLine();//插入一个和系统相关的换行
bufferedWriter.write("hello2,计算机科学");
bufferedWriter.newLine();//插入一个和系统相关的换行
bufferedWriter.write("hello3,计算机科学");
bufferedWriter.newLine();//插入一个和系统相关的换行
//说明:关闭外层流即可,传入的FileWriter(filePath),会再底层关闭
bufferedWriter.close();
}
}
文本文件拷贝
- 综合使用BufferedReader 和 BufferedWriter 完成 文本文件拷贝
public class BufferedCopy_ {
public static void main(String[] args) {
String srcFilePath = "d:\\111\\story.txt";
String destFilePath = "d:\\111\\ld.txt";
BufferedReader br= null;
BufferedWriter bw = null;
String line;
try {
br = new BufferedReader(new FileReader(srcFilePath));
bw = new BufferedWriter(new FileWriter(destFilePath));
//说明:readLine 读取一行内容,但是没有换行
while ((line = br.readLine())!= null){
//每读取一行,就写入
bw.write(line);
//插入一个换行
bw.newLine();
}
System.out.println("拷贝成功!");
} catch (IOException e) {
e.printStackTrace();
} finally {
//关闭流
try {
if(br != null){
br.close();
}
if(bw != null){
bw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
- 注意事项:
- BufferedReader 和 BufferedWriter 是安装字符操作。
- 不要去操作 二进制文件[声音,视频,doc,pdf],可能会造成文件损坏。