一.缓冲流的作用以及使用场景
循环独写数据,操作磁盘的次数非常多,影响性能,通过缓存流,可以先缓存大量读写数据,等到比较多了之后,在连接磁盘一次从磁盘读取或者写。避免多次连接磁盘影响性能,缓冲流的使用[缓冲,达到高效读写操作]有如下四种:
BufferedInputStream
BufferedOutputStream
BufferedReader
BufferedWriter
二.字节缓冲流:
具体使用案例:
public static void main(String[] args) throws IOException {
FileInputStream input = new FileInputStream("G:\\测试文件\\新建文件夹\\新建文件夹\\13.txt");
FileOutputStream output = new FileOutputStream("G:\\测试文件\\新建文件夹\\新建文件夹\\12.txt",true);
//缓冲流
BufferedInputStream bufferedInputStream = new BufferedInputStream(input);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(output);
byte[] bytes = new byte[1024];
int len;
while ((len=bufferedInputStream.read(bytes))!=-1){
bufferedOutputStream.write(bytes,0,len);
}
bufferedOutputStream.close();
bufferedInputStream.close();
output.close();
input.close();
}
三.字符缓冲流
具体使用案例:
这里我们使用的是readLine()方法一行一行的读,当然也可以想源生字符流一样使用中间char[]数组作为中间缓存区。
public static void main(String[] args) throws IOException {
FileReader reader = new FileReader("G:\\测试文件\\新建文件夹\\新建文件夹\\13.txt");
FileWriter writer = new FileWriter("G:\\测试文件\\新建文件夹\\新建文件夹\\12.txt",true);
//缓冲流
BufferedReader bufferedReader = new BufferedReader(reader);
BufferedWriter bufferedWriter = new BufferedWriter(writer);
String line;
//一行一行的读 一行一行的写
while ((line = bufferedReader.readLine())!=null){
bufferedWriter.write(line);
}
bufferedWriter.close();
bufferedReader.close();
writer.close();
reader.close();
}