Nio字节缓冲(通过通道)对IO BufferInputStream

时间:2013-05-10 08:31:27

标签: java io nio

两者中哪一个是最佳选择,在哪种情况下? 显然,将文件通道用于非常小的文件是没有意义的。除此之外,两个输入/输出装置的优点和缺点是什么。 非常感谢。

1 个答案:

答案 0 :(得分:1)

FileChannel在java.io中缺少许多功能:它是可中断的,它可以在文件中移动位置,它可以锁定文件等等。它可以比旧IO更快,特别是当它使用直接字节缓冲区时,这是ByteBuffer API的解释:

byte buffer is either direct or non-direct. Given a direct byte buffer, the Java virtual machine will make a best effort to perform native I/O operations directly upon it. That is, it will attempt to avoid copying the buffer's content to (or from) an intermediate buffer before (or after) each invocation of one of the underlying operating system's native I/O operations. 

如果您不需要上述任何功能,请使用流,您将获得更短的代码。