byte [] Files.readAllBytes()和FileChannels.map(ByteBuffer / MappedByteBuffer)之间的区别

时间:2015-02-23 23:30:40

标签: java byte buffer nio

我在分配时看到了所有类型的基准测试和直接/非直接的bytebuffer解释,但是我没有找到在这些方法上使用内存字节时的差异的简单解释。

有人可以解释一下吗?要说出他们的不同之处并不难。

谢谢!

2 个答案:

答案 0 :(得分:1)

readAllBytes将文件的全部内容复制到新的堆上字节数组中,而将文件映射到ByteBuffer则允许访问文件的字节,而无需立即将其全部加载到内存中。您应该期望从映射的字节缓冲区访问字节会产生一些性能开销,但另一方面,您可以映射不适合RAM的大型文件。

答案 1 :(得分:0)