Java 获取文件元数据的开销(上次修改日期)
我假设Java 获取文件元数据的开销(上次修改日期),java,filesystems,Java,Filesystems,我假设java.io.File(File).lastModified()不会以任何方式加载文件本身,因此开销最小,这是否正确?这是一个非常基本的问题,但是我找不到任何关于它的好信息 设置最后修改的日期也应该几乎没有开销,对吗 如果我理解正确,这个元数据是与文件分开存储的,因此如果我没有弄错的话,读取和写入这个数据应该不会花费太多,但我只是想确保,因为我将使用它作为缓存机制的中心基础 根据到目前为止的评论和回复,这是否意味着只针对我的文件使用过滤器进行目录列表更有效?因为这听起来没那么有效 ja
java.io.File(File).lastModified()
不会以任何方式加载文件本身,因此开销最小,这是否正确?这是一个非常基本的问题,但是我找不到任何关于它的好信息
设置最后修改的日期也应该几乎没有开销,对吗
如果我理解正确,这个元数据是与文件分开存储的,因此如果我没有弄错的话,读取和写入这个数据应该不会花费太多,但我只是想确保,因为我将使用它作为缓存机制的中心基础
根据到目前为止的评论和回复,这是否意味着只针对我的文件使用过滤器进行目录列表更有效?因为这听起来没那么有效
java.io.File(File)
返回一个文件
对象。因此,文件对象被实例化
每次调用file.lastModified()
时,它都以本机方法调用java.io.UnixFileSystem.getLastModifiedTime(file)
结束
同样,每次你打电话都会发生这种情况
所以这是您所关心的开销部分。抛出:SecurityException-如果存在安全管理器,并且其SecurityManager.checkRead(java.lang.String)方法拒绝对该文件的读取访问,这表明它与windows:D上的
javaxt
相同好,我还可以问一下您在哪里或如何找到该信息吗?希望下次我能自己找到:)看看文件.lastModified()
代码。您会注意到类似于return fs.getLastModifiedTime(这是)代码>这里对我来说,java.io.UnixFileSystem.getLastModifiedTime(文件)
是Linux的文件系统
的实现,它是一种本机方法。对于其他操作系统也应该是类似的。