一、为什么要使用缓冲流?
大家都清楚,我们使用字节流对硬盘上的文件进行操作的时候,它都是按字节把文件一个字节一个字节的从磁盘中读取到程序中来,或者是从程序写入到磁盘上面。一个字节只有多大一点儿呢,1byte=8bit,小了点,而且又是直接操作磁盘,我们知道,操作磁盘相比操作内存来说,操作磁盘的速度远比操作内存的速度要低很多个数量级。因此我们在对文件进行操作的时候呢,就可以拷虑先把文件从硬盘读到内存里面,把它缓存起来,然后使用一个缓冲流再来对内存里面的数据进行操作,这样就可以把读写文件的速度拉高。
可以参考BufferedInputStream与BufferedOutputStream.同时比较InputStream与BufferedInputStream它们在速度上是否有差别。同时也可以深入理解缓冲流的强大之处。
二、为什么要使用包装流?
要,肯定是需要,需要什么呢,需要一个功能?什么功能呢?肯定是更普通流不具备的功能。
我们在买烟的时候,为什么要把一支一支的烟用一个烟盒装起来呢,这肯定有好处啥?简单说携带方便吧。
我们知道FileInputStream在读文件的时候,是按照一个字节一个字节的读的,这样速度很慢,这时候我们就想到用一个包装流把FileInputStream包装一下,先给它转换成InputStreamReader,为啥呢,因为为了使用BufferedReader啊,你看BufferedReader的构造里面就需要一个InputStreamReader,使用BufferedReader有啥好处呢,它可以缓冲啊,把数据缓冲在内存里面,程序存取速度就可以大大的提高。 |
|