关于InputStream的read方法的使用

在代码中使用到了read(byte[] b,off,len)这个方法。
我想请教的是如果我的inputStream对象中的数据比较多,比如几千万个btye,是将b初始化为所有数据长度,调用read方法一次写入所有的数据到数组中效率高,还是使用缓冲区的方式循环的将数据读到一个byte数组中效率高呢?
我现在采用的是前一种方式,当数据过大的时候,会出现内存溢出的现象。。不知道是不是这个原因造成的。。

从效率的角度, 一次读取当然快,但结果你也看到了,会出现内存溢出,也就是超过缓存区的容量,所以还是老老实实的通过缓存的方式,一段一段的读取吧
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-19
最好分段读,一次性读很大的话,效率不见得高,因为要用到更多的系统资源。
可以尝试不同的段大小,比较一下,会找到一个合适的分段大小的。
第2个回答  2010-06-19
inputStream中的数据量一般是不确定数量的,不要一次读完。采用缓冲的方式,缓冲的大小1K左右就OK

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网