缓冲流
缓冲流就是基本流的装饰,也就是功能加强。
一共有四种缓冲流
BufferedReader
BufferedWriter
BufferedInputStream
BufferedOutputStream
BufferedReader
该缓冲流有readLine方法,可以读一行字符。其原理就是该类中定义了一个数组,磁盘将读到的数据给内存,当读完一行内存再给cpu提高了效率。
BufferedReader例子
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.FileReader; import java.io.FileWriter; public class Demo1 { public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader(new FileReader("F:\JavaCode\Demo.java")); BufferedWriter bw=new BufferedWriter(new FileWriter("F:\jc\Demo.txt")); String line=null; while((line=br.readLine())!=null){ bw.write(line); bw.newLine(); bw.close(); //一定要刷新,不然数据无法写磁盘。这里用的close,在关闭之前会调用flush. } br.close(); } }
BufferedInputStream复制图片
import java.io.*; public class Demo2 { public static void main(String[] args)throws IOException { BufferedInputStream bi= new BufferedInputStream(new FileInputStream("F:\jc\1.jpg")); BufferedOutputStream bo= new BufferedOutputStream(new FileOutputStream("F:\jc\2.jpg")); byte[] line=new byte[1024]; while(bi.read(line)!=-1){ bo.write(line); } bo.close(); //写在循环外,不然数据大于1KB,在第一次循环就把流关闭了 bi.close(); } }