我可能对文件执行哪些操作会导致file.lastModified()调用更改它的值?

时间:2013-02-14 19:10:01

标签: java file

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

即。开幕式?读?写作?复制?写作是一个明显的触发器,但其他的并不那么明显。我已经做了一些在线环顾,没有立即看到任何东西。

澄清:我没有设置上次修改时间,我只是试图确定java程序可能参与的编程行为会导致此值更新。显然写入文件会这样做。但还有其他案例导致这种情况吗?

1 个答案:

答案 0 :(得分:0)

阅读取决于开放,复制取决于阅读。写入是设置“上次修改”标记的唯一触发器。在大多数操作系统中打开文件后,您需要指定要打开文件的模式。例如rwrwa(追加)等(依赖于实施/操作系统)。由于a包含ww是唯一可以设置上次修改标记的操作。

Java类(例如FileInputStream)将打开指定r或“read”的文件 - 这样就不会触发LastModified标记。 Java为读者和作者提供了不同的类 - 输入和输出。输入/阅读器类(ReaderInputStream)不会设置LastModified标记。但是,一个简单的Open-For-Write(没有实际写入)很可能也会触发LastModified标记,即:

new FileOutputStream( new File( "path/to/file.extension" ) );

很可能会触发LastModified集。

问候。