Java 我可能会对文件执行哪些操作,从而导致file.lastModified()调用更改它';s值多少?
我想知道在java中什么类型的编程行为可以算作“修改”文件。也就是说,我可能对文件执行的哪些操作会导致file.lastModified()调用更改其值 也就是说,开幕式?阅读?写作?抄袭?写作是一个明显的触发因素,但其他因素则不那么明显。我在网上做了一些调查,没有立即看到任何东西Java 我可能会对文件执行哪些操作,从而导致file.lastModified()调用更改它';s值多少?,java,file,Java,File,我想知道在java中什么类型的编程行为可以算作“修改”文件。也就是说,我可能对文件执行的哪些操作会导致file.lastModified()调用更改其值 也就是说,开幕式?阅读?写作?抄袭?写作是一个明显的触发因素,但其他因素则不那么明显。我在网上做了一些调查,没有立即看到任何东西 澄清:我不是要设置上次修改的时间,我只是试图确定java程序可能参与的编程行为会导致该值更新。显然,写入一个文件就可以做到这一点。但是,还有其他情况会导致这种情况吗?阅读取决于打开,复制取决于阅读。写入是设置最后修改
澄清:我不是要设置上次修改的时间,我只是试图确定java程序可能参与的编程行为会导致该值更新。显然,写入一个文件就可以做到这一点。但是,还有其他情况会导致这种情况吗?阅读取决于打开,复制取决于阅读。写入是设置最后修改的戳记的唯一触发器。在大多数操作系统中,打开文件后,需要指定要以何种模式打开文件。e、 g.
rw
或r
或w
或a
(附加)等(取决于实现/操作系统)。由于a
包括w
,w
是唯一将设置上次修改的戳记的操作
Java类(如FileInputStream
)将打开指定r
或“read”的文件,这样就不会触发上次修改的戳记。Java有不同的读写器类——输入和输出。输入/读取器类(reader
,InputStream
)不会设置上次修改的戳记。但是,一个简单的开放供写入(不实际写入)也很可能触发LastModified戳记,即:
new FileOutputStream( new File( "path/to/file.extension" ) );
最有可能触发上次修改的集合
关于。上次修改标志是操作系统的一项功能;java只是将这个值传递给您。任何更改文件中单个字节的内容都应更改“上次修改”日期;a也是。谢谢你的评论,我知道这个标志是一个操作系统函数。我正试图从我的程序中找出可能导致此标志更新的原因。与其让我们猜测可能的原因,不如花时间跟踪代码中触发上次修改的更改的点。我很感激,但是我希望在某个地方有一个列出操作的列表。打开文件并读取它并不是在修改它。给它写信就是修改它。您不需要列表。说它将触发上次修改的更改是不正确的。它将创建一个完整的新文件,其中包含一个新的创建日期以及一个新的上次修改日期。