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

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

1.字节缓冲流

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

1.1  字节缓冲输出流BufferedOutputStream

IO流之缓冲流_输入流

 

1.2字节缓冲输入流BufferedInputStream

IO流之缓冲流_释放资源_02

 

 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

IO流之缓冲流_io流_03

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

IO流之缓冲流_io流_04

 

 

 

 

2.2字符缓冲输入流 BufferedReader

IO流之缓冲流_输入流_05

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

IO流之缓冲流_输出流_06

 

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     }