Как обнаружить изменение файла? - PullRequest
2 голосов
/ 12 сентября 2011

У меня есть сохраненный файл, содержащий некоторые данные.Я хочу определить, был ли он изменен, а затем решить проблему, если это необходимо.

Я думал об управлении количеством строк в файле, но я застрял.

Более того, нет способа выполнить это: http://developer.android.com/reference/java/io/File.html.

Любойидеи пожалуйста?

Ответы [ 5 ]

4 голосов
/ 12 сентября 2011

Взгляните на FileObserver класс документацию.

4 голосов
/ 12 сентября 2011

Использование контрольной суммы MD5 было бы одним, очень интенсивным способом сделать это, однако, если вы сравните временные метки для данных «измененной даты» в файле, вы сможете эффективно найти файлы, которые были изменены.

Это должно помочь вам начать

File file = new File(absolute_file_location);

if (file.exists())
{
  Date lastModified = new Date(file.lastModified());
}
2 голосов
/ 12 сентября 2011

Вы можете попробовать использовать проверку файлов md5 для проверки контрольной суммы файлов.

Контрольная сумма Java md5: Получение контрольной суммы MD5 в Java

Или попробуйте это http://www.rgagnon.com/javadetails/java-0490.html

Я думаю, есть другие методы лучше, чем этот

1 голос
/ 12 сентября 2011

Отслеживание отметки времени, когда файл последний раз изменялся с использованием метода lastModified файла

http://developer.android.com/reference/java/io/File.html#lastModified()

0 голосов
/ 01 марта 2016

Другой подход заключается в наблюдении за изменениями в файле с использованием Java WatchService.

https://docs.oracle.com/javase/tutorial/essential/io/notification.html

Хотя я не уверен, насколько хорошо он работает в Android.

...