缓冲流
- BufferedInputStream
- BufferedOutputStream
- 提高IO效率,减少访问磁盘的次数
- 数据存储在缓冲区中,flush是将缓冲区中的内容写入文件中
例:
public class Demo04 {
public static void main(String[] args) throws Exception{
//使用字节缓冲流读取文件
FileInputStream fis = new FileInputStream("d:\\bbb.txt");
//fis存入缓冲流
BufferedInputStream bis = new BufferedInputStream(fis);
//这个时候读取就不再使用fis了
// int data = 0;
// while ((data= bis.read())!=-1 ){
// System.out.println((char) data);
// }
//bis里面自己有一个缓冲区,但我们也可以自己写一个缓冲区
byte[] buf = new byte[1024];
int count = 0;
while ((count= bis.read(buf))!= -1){
System.out.println(new String(buf,0,count));
}
}
}
输出:
public static void main(String[] args) throws Exception{
FileOutputStream fos = new FileOutputStream("d:\\aaa.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
//写入文件
for (int i = 0; i < 10; i++) {
bos.write("hello world\r\n".getBytes());//这样会先写入8k的缓冲区,文件里不会显示
bos.flush();//刷新到硬盘
}
bos.close();
}
结果: