Мне интересно, какие типы программного поведения считаются «изменением» файла в java. То есть, какие операции, которые я мог бы выполнить с файлом, заставили бы вызов file.lastModified () изменить его значение?
I.E. Открытие? Читаете? Пишу? Копирование? Письмо - очевидный спусковой крючок, но остальные не так очевидны. Я поискал в Интернете и не увидел ничего сразу.
Уточнение: я не пытаюсь установить время последнего изменения, я просто пытаюсь определить, какие программные действия, которые могут выполнять Java-программы, могут привести к обновлению этого значения. Очевидно, что запись в файл сделает это. Но есть ли другие случаи, которые действительно вызывают это?
1 ответ
Чтение зависит от открытия, Копирование зависит от чтения. Запись - единственный триггер для установки штампа «Последнее изменение». После открытия файла в большинстве операционных систем вам необходимо указать, в каких режимах вы хотите открыть файл. например rw
или r
, или w
, или a
(добавить) и т. Д. (Зависит от реализации / ОС). Поскольку a
включает w
, w
- единственная операция, которая устанавливает отметку "Последнее изменение".
Классы Java (такие как FileInputStream
) откроют файл с указанием r
или "чтение" - так что это не вызовет штамп LastModified. В Java есть отдельные классы для читателей и писателей - ввод и вывод. Классы ввода / чтения (Reader
, InputStream
) не устанавливают штамп LastModified. Однако простой Open-For-Write (без фактического написания), скорее всего, также вызовет штамп LastModified, то есть:
new FileOutputStream( new File( "path/to/file.extension" ) );
Скорее всего, вызовет набор LastModified.
С уважением.
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.