0

我想知道哪些类型的编程行为算作“修改”java 中的文件。也就是说,我可能对文件执行的哪些操作会导致 file.lastModified() 调用更改它的值?

IE 开放?阅读?写作?抄袭?写作是一个明显的触发因素,但其他的并不那么明显。我在网上做了一些环顾四周,并没有立即看到任何东西。

澄清:我不想设置最后修改时间,我只是想确定java程序可能参与的哪些编程行为会导致这个值更新。显然写入文件会做到这一点。但是还有其他情况会导致这种情况吗?

4

1 回答 1

0

读靠开,抄靠读。写入是设置 Last Modified 标记的唯一触发器。打开文件后,在大多数操作系统中,您需要指定要使用哪些模式打开文件。例如rwor ror or wor 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 集。

问候。

于 2013-02-14T20:03:59.747 回答