1.缓冲流分类
2.字节缓冲流
原理:底层自带了长度为8192的缓冲区提高性能。
1.方法:
- public BufferedInputstream( Inputstream is):把基本流包装成高级流,提高读取数据的性能。
- public BufferedOutputStream(OutputStream os)把基本流包装成高级流,提高写出数据的性能。
案例1:拷贝文件
//创建缓冲流的对象
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("day32\\a.txt"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("day32\\copy2.txt"));
//拷贝,一次读写多个字节
byte[] bytes = new byte[1024];
int len;
while ((len = bis.read())!= -1){
bos.write(bytes,0,1);
}
//释放资源
bos.close();
bis.close();
3.字符缓冲流
原理:底层自带了长度为8192的缓冲区提高性能。
1. 构造方法:
- public BufferedReader(Reader r):把基本流变成高级流
- public Bufferedwriter(Writer r):把基本流变成高级流
2.特有方法:
- public string readLine():读取一行数据,如果没有数据可读了,会返回null。
不会把回车读到内存当中。
- public void newLine():跨平台的换行
案例2:读取数据
//创建字符缓冲输入流
BufferedReader br = new BufferedReader(new FileReader("G:\\JavaReview\\day32\\a.txt"));
//读取数据
// String line = br.readLine();
// System.out.println(line);
String line;
while ((line = br.readLine())!= null){
System.out.println(line);
}
br.close();
案例3:写入数据
//创建字符缓冲输出流
BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt",true));
//写出数据
bw.write("杨双双是个小可爱");
bw.newLine();
bw.write("以后我结婚了,你一定要来哦,没有新娘我会很尴尬");
bw.newLine();
//释放资源
bw.close();