0

Javaでファイルを「変更」すると見なされるプログラムの動作の種類を知りたいです。つまり、ファイルに対してどのような操作を実行すると、file.lastModified() 呼び出しによってその値が変更されるのでしょうか?

IE オープニング? 読む?書き込み?コピー?書くことは明らかなトリガーですが、他のものはそれほど明白ではありません。私はオンラインでいくつか見回しましたが、すぐには何も見られませんでした。

明確化: 私は最終変更時刻を設定しようとはしていません。Java プログラムが関与する可能性のあるプログラムの動作によってこの値が更新される可能性があるかどうかを判断しようとしているだけです。明らかに、ファイルへの書き込みがこれを行います。しかし、これを引き起こす他のケースはありますか?

4

1 に答える 1

0

読書は開くことに依存し、コピーは読書に依存します。最終変更スタンプを設定するトリガーは書き込みのみです。ファイルを開いたら、ほとんどのオペレーティングシステムで、ファイルを開くモードを指定する必要があります。例:rwまたはrまたはwまたはa(追加)など(実装/ OSに依存)。aを含むのでww最終変更スタンプを設定する唯一の操作です。

Javaクラス(など)は、LastModifiedスタンプをトリガーしないように、指定または「読み取り」FileInputStreamするファイルを開きます。rJavaには、リーダーとライター用の異なるクラス(入力と出力)があります。入力/リーダークラス(ReaderInputStream)はLastModifiedスタンプを設定しません。ただし、単純なOpen-For-Write(実際に書き込むことなく)もLastModifiedスタンプをトリガーする可能性があります。

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

ほとんどの場合、LastModifiedセットをトリガーします。

よろしく。

于 2013-02-14T20:03:59.747 に答える