我想知道哪些类型的编程行为算作“修改”java 中的文件。也就是说,我可能对文件执行的哪些操作会导致 file.lastModified() 调用更改它的值?
IE 开放?阅读?写作?抄袭?写作是一个明显的触发因素,但其他的并不那么明显。我在网上做了一些环顾四周,并没有立即看到任何东西。
澄清:我不想设置最后修改时间,我只是想确定java程序可能参与的哪些编程行为会导致这个值更新。显然写入文件会做到这一点。但是还有其他情况会导致这种情况吗?
读靠开,抄靠读。写入是设置 Last Modified 标记的唯一触发器。打开文件后,在大多数操作系统中,您需要指定要使用哪些模式打开文件。例如rw
or r
or or w
or a
(append) 等(依赖于实现/操作系统)。由于a
包括w
,w
是唯一设置 Last Modified 标记的操作。
Java 类(例如FileInputStream
)将打开指定r
或“读取”的文件 - 这样就不会触发 LastModified 标记。Java 有不同的 Readers 和 Writers 类 - Input 和 Output。输入/阅读器类 ( Reader
, InputStream
) 不会设置 LastModified 标记。然而,一个简单的 Open-For-Write(没有实际写入)很可能也会触发 LastModified 标记,即:
new FileOutputStream( new File( "path/to/file.extension" ) );
很可能会触发 LastModified 集。
问候。