这两个写法都是读取txt文件单独字符串内容,返回结果也一样。
但是第二个写法增加一个BufferReader去包装文件字符串流,它的作用是什么。或者好处是什么。或者说它可有可无?
有的人可能会说BufferReader的作用就是增加缓存,一次性读取速度更快,就好像100斤大米一次性搬不动,分很多次搬即可,然后BufferReader在这里面充当了一个桶的中间人,一次性桶装20斤,分5次就搬完,最后一次返回-1或者行空null。
这个没啥问题,主要是第一个方法没有BufferReader,但是它也有new char [1024],也不是一个字符一个字符地读取的,它也是一次性拿20斤,也是有缓冲和Buffer的思想在里面的。
那么问题来了,为什么网上大部分关于流,不管Socket流还是文件流,都是在GetInputStream后外面再套一个Buffer,它的作用到底是什么呢~或者它的效果有什么不同。
BufferedReader 首先内部维护一个 字符缓冲区,所以它不会频繁地访问磁盘,这是相比FileReader的优势
另外这个缓存区 也是可以通过构建BufferedReader时指定的,可以调节;
同时 它里面也有一些高效读取的方法,比如 readLine等等。