java - java.nio.channels.FileChannel.size() 对于大文件来说速度快吗?

标签 java nio

在javadoc中该方法的解释如下:

Returns: The current size of this channel's file, measured in bytes

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

最佳答案

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

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

关于java - java.nio.channels.FileChannel.size() 对于大文件来说速度快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41595688/

相关文章:

java - Jackson 数据绑定(bind)与异构 Json 对象

用于继续流式传输的 java.nio 选择器和 SocketChannel

java - 在 unix 上使用 NIO 时未设置写入权限

java - 使用 FileChannels 在 Java 中连接大文件的方法更有效

java - 使用 Java 7 仅访问特定深度的目录

java - 在末尾填充空字节的字节数组 : how to efficiently copy to smaller byte array

java - 找不到要导入的项目 - Helios eclipse

java - GCM android Error receiving broadcast Intent { act=DISPLAY.MESSAGE flg=0x10(有附加功能)

java - 从 apk 恢复原始源

每个可选 channel 的 Java NIO 多个选择器