1.缓冲流涉及到的类
BufferedInputStream
BufferedOutputStream
BufferedReader
BufferedWriter
2.作用
作用:提供流的读取、写入速度
提高读写速度的原因:内部提供了一个缓冲区,默认情况下是8kb
3.典型代码
3.1 使用BufferedInputStream和BufferedOutputStream:处理非文本文件
@Test
public void InputStreamReaderTest() {
BufferedInputStream b1 = null;
BufferedOutputStream b2 = null;
try {
File file = new File("hello.txt");
File file1 = new File("hello2.txt");
FileInputStream f1 = new FileInputStream(file);
FileOutputStream f2 = new FileOutputStream(file1);
b1 = new BufferedInputStream(f1);
b2 = new BufferedOutputStream(f2);
byte[] bytes = new byte[1024];
int len;
while ((len = b1.read(bytes)) != -1){
b2.write(bytes,0,len);
}
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
if (b1 != null) {
try {
b1.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
if (b2 != null){
try {
b2.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
3.2 使用BufferedReader和BufferedWriter
方法和上面的相似,略
下图是方法二,readline可以读取一行,但读取的不包含换行符,需要自己添加
newLine是一个换行,或者直接自己写换行
下图flush方法是一个刷新的作用,因为Bufferedxxx是一个处理流,它的数据可以被存储在缓冲区内,当到达缓冲区的极限时才会被写出,通过此方法可以直接把缓冲区的内容写出到文件内