对于大文件,java.nio.channels.FileChannel.size()快吗?

时间:2017-01-11 16:16:23

标签: java nio

在javadoc中,此方法解释为:

  

返回:       此通道文件的当前大小,以字节为单位

我需要问一下这个方法调用是否实际导致以某种方式读取/消费文件的整个内容?换句话说,如果此方法调用非常快速且便宜,或者取决于文件的大小?

1 个答案:

答案 0 :(得分:1)

OpenJDK中FileChannel的实现使用fstat64GetFileSize来获取文件的大小。它非常快。

但规范并不要求此方法在恒定时间内运行。因此,可能存在JVM的实现,其中此方法的调用读取整个文件。