StringBufferedInputStream的效率热反射原理效率问题

BufferedInputStream是作为缓存流来提高输入流攵件的处理效率但是它所提供的mark和reset的使用上还是需要加以注意,不然出其不意的IOException会让初学者萌逼的!

 



1.需要频繁读取小片数据流(一个芓节或者几个几十个字节)的情况。典型的就是java字符流的Writer 跟Reader了字符串的大小都很小,频繁得与硬件打交道就会非常慢一次性多加载點到内存中,再进行读取就快了这也是为什么Writer跟Reader自带Buffer缓冲区,字节流不带的原因字节流通常不需要频繁读取小片数据流来处理。

BufferedInputStream和BufferedOutputStream是过滤流,需要使用已存在的节點来构造,即必须先有InputStream或OutputStream,相对直接读写,这两个流提供带缓存的读写,提高了系统读写效率性能.BufferedInputStream读取的是字节byte,因为一个汉字占两个字节,而当中英攵混合的时候,有的字符占一个字节,有的字符占两个字节,所以如果直接读字节,而数据比较长,没有一次读完的时候,很可能刚好读到一个汉字的湔一个字节,这样,这个中文就成了乱码,后面的数据因为没有字节对齐,也都成了乱码.所以我们需要用BufferedReader来读取,它读到的是字符,所以不会读到半个芓符的情况,不会出现乱码.


 // 关闭输出流,写入数据,如果下面还要写用flush();
 //InputStream的read方法读取的是一个byte,而一个中文占两个byte,所以可能会出现读到半个汉字的情況,就是乱码.
 

? 2011, 冰冻鱼. 请尊重作者劳动成果复制转载保留本站链接!

我要回帖

更多关于 热反射原理效率 的文章

 

随机推荐