IO流之缓冲流

Java中提高了一套缓冲流,它的存在,可提高IO流的读写速度

缓冲流,根据流的分类分类字节缓冲流与字符缓冲流。

1.字节缓冲流

它们的内部都包含了一个缓冲区,通过缓冲区读写,就可以提高了IO流的读写速度

1.1  字节缓冲输出流BufferedOutputStream

1.2字节缓冲输入流BufferedInputStream

 1.3添加缓冲流复制文件

 1 public class demo03 {
 2     public static void main(String[] args) throws IOException {
 3         //明确数据源
 4         FileInputStream fis = 
 5                 new FileInputStream("D:\video\a.wmv");
 6         //添加缓冲流
 7         BufferedInputStream bis = new BufferedInputStream(fis);
 8         //明确目的地
 9         FileOutputStream fos = 
10                 new FileOutputStream("D:\io0429\hello\a.wmv");
11         //添加缓冲流
12         BufferedOutputStream bos = new BufferedOutputStream(fos);
13         //单个字节数组复制
14         byte[] bytes = new byte[1024];
15         int len = 0;
16         while((len = bis.read(bytes)) != -1){
17             bos.write(bytes, 0, len);
18         }
19         //释放资源
20         bis.close();
21         bos.close();
22     }
23 }

 

2.字符缓冲流

它们的内部都包含了一个缓冲区,通过缓冲区读写,就可以提高了IO流的读写速度

2.1字符缓冲输出流 BufferedWriter

 字符缓冲输出流中,新增加了一个方法,是按照"行"来进行写入。

2.2字符缓冲输入流 BufferedReader

  字符缓冲输入流中,也新增加了一个方法,是按照"行"来进行读取。行读取到末尾时,它的返回值是null而不是-1

2.3通过"行"读取写入来复制文件

 1     public static void main(String[] args) throws IOException {
 2         //明确数据源
 3         FileReader fr = new FileReader("D:\io0429\demo01.txt");
 4         //添加缓冲流
 5         BufferedReader br = new BufferedReader(fr);
 6         //明确目的地
 7         FileWriter fw = new FileWriter("D:\io0429\demo05.txt");
 8         //添加缓冲流
 9         BufferedWriter bw = new BufferedWriter(fw);
10         String line = null;
11         while((line = br.readLine()) != null){
12             bw.write(line);
13             bw.newLine();
14             bw.flush();
15         }
16         //释放资源
17         bw.close();
18         br.close();
19     }
原文地址:https://www.cnblogs.com/shenhx666/p/15065040.html