内容
1.BufferedReader
2.BufferedWriter
3.使用BufferedReader和BufferedWriter完成文件复制
![](https://i-blog.csdnimg.cn/blog_migrate/950d04d4bf809669603bf1f970d03e4b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/17e343ef7f3e5605e7f8967836a95d73.png)
一.BufferedReader
1.注意
和BufferedWriter一样,BufferedReader是一个包装流。
2.使用示例
import java.io.*;
public class 测试程序 {
public static void main(String[] args) throws Exception {
//1.创建一个带有缓冲区的字符输入流
//①创建一个文件字符输入流
FileReader fr = new FileReader("temp01");
//②将文件字符输入流包装成带有缓冲区的字符输入流
BufferedReader br = new BufferedReader(fr);
//根据流出现的位置,流又可以分为:包装流或者处理流 和节点流
//FileReader fr是一个节点流
//BufferedReader br 是一个包装流,或者处理流
//2.开始读
String temp = null;
while((temp = br.readLine()) != null) {//这个方法能读取一行,没有了就返回null
System.out.println(temp);//输出一行
}
//3.关闭
//注意,关闭的时候只需要关闭最外层的包装流(这里有一个装饰者模式)
br.close();
}
}
3.字节输入流转换成BufferedReader
import java.io.*;
public class 测试程序 {
public static void main(String[] args) throws Exception {
//1.创建文件字节输入流
FileInputStream fis = new FileInputStream("temp01");
//2.使用转换流将字节流转换成字符流
InputStreamReader isr = new InputStreamReader(fis);
//3.创建带有缓冲区的字符输入流
BufferedReader br = new BufferedReader(isr);
//4.开始读
String temp = null;
while((temp = br.readLine()) != null) {
System.out.println(temp);
}
//5.关闭,关闭最外层的流即可(装饰者模式)
br.close();
}
}
4.使用BufferedReader接收用户键盘输入
package 对象;
import java.io.*;
import java.util.*;
public class 测试程序 {
public static void main(String[] args) throws Exception {
/* //1.以前的方式
Scanner s = new Scanner(System.in);//System.in是一个标准的输入流,默认接收键盘的输入
//2.程序执行到此处停下来,等待用户的输入
String str = s.next();
System.out.println("您输入了:"+str);
*/
//1.使用BufferedReader用来接收用户的输入
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//2.接收输入(每一次都接收一行)
String str = br.readLine();
System.out.println("您输入了:" +str);
//3.关闭
br.close();
}
}
二.BufferedWriter
1.注意
类比BufferedReader,特别注意如何创建
2.使用示例
package 对象;
import java.io.*;
import java.util.*;
public class 测试程序 {
public static void main(String[] args) throws Exception {
//1.创建带有缓冲区的字符输出流
BufferedWriter bw = new BufferedWriter(new FileWriter("temp02"));
//或者写成
BufferedWriter bw1 = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("temp 03",true)));
//2.开始写
bw.write("我");
//3.写入一个行分隔符
bw.newLine();
bw.write("是中国人");
//4.刷新
bw.flush();
//5.关闭
bw.close();
}
}
结果是这样的
![](https://i-blog.csdnimg.cn/blog_migrate/ab697082429e8dc38ac0425fdf636826.png)
三.使用BufferedReader和BufferedWriter完成文件复制
注意换行符的使用:加在循环里。
package 对象;
import java.io.*;
import java.util.*;
public class 测试程序 {
/*
* 使用BufferedReader和BufferedWriter完成复制
*/
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new FileReader("temp02"));
BufferedWriter bw = new BufferedWriter(new FileWriter("temp04"));
String temp = null;
while((temp = br.readLine()) != null) {
bw.write(temp);
bw.newLine();
}
bw.flush();
br.close();
bw.close();
}
}