BufferedInputStream 比 InputStream快的原因(java)
InputStream:每次从硬盘读入一个字到中转站, 再写入目的文件(硬盘)
BufferStream:一次读入n个字节到输入换成区,接着经中转站一个个写入到输出缓冲区,输入缓冲区为空时再次从硬盘读入批量数据,同理输出缓冲区满了以后再批量写入到目的文件(硬盘)。
如此使用BufferedStream可以减少访问硬盘的次数,速度大幅提升。
总结:
1、
节点流:FileInputStream,FileOutputStream
处理流:BuffereInputStream,BufferOutputStream
2、处理流的好处:提高性能。
3、如何创建处理流:
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(new File("e:/xxx.txt"));//文件名随便举例
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(new File("e:/yyy.txt"));
4、关闭流:只要关闭高层流即可,底层流可以不关闭。(关闭高层流会关闭底层流)
5、何时将输出缓冲区的内容更新到文件中。(刷新flush())
a、缓冲区慢的时候
b、关闭流的时候
c、调用flush()