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 }