本帖最后由 哈达洋 于 2014-10-18 16:37 编辑
至于为什么不需要,是因为字节流缓冲区内部本来就封装了数组。对于BufferedInputStream,它的read()方法,实际是从它内部数组中读取一个字节,而它内部是相当于用的输入流的read(buf,0,len)方法从文件中读数据到内部数组中。对于BufferedOutputStream,它内部也封装了数组,它的write(int len)方法,实际上是将元素一个一个写到内部数组中,然后通过内部的流采用write(buf,0,len)的方法,一次性写多个字节到文件中。如果你定义的数组长度大于8k的话,那么采用你自定义数组的方式的效率就会更高,因为他们内部封装的数组长度默认是8k。 |