В моем приложении я прочитал файл, используя следующий метод,Укажите время последнего доступа и последнее изменение времени в java?
public void readFIleData(String path) {
BufferedReader br = null;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader(path));
while ((sCurrentLine = br.readLine()) != null) {
System.out.println("Data : "+sCurrentLine);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
Также я в последний раз доступа и время последнего изменения файла, используя следующий метод,
public void getFIleInfo(String path) {
Path file = Paths.get(path);
try {
BasicFileAttributes attrs = Files.readAttributes(file, BasicFileAttributes.class);
FileTime accessTime = attrs.lastAccessTime();
System.out.println("accessTime : "+accessTime.toMillis());
FileTime modifiedTime = attrs.lastModifiedTime();
System.out.println("modifiedTime : "+modifiedTime.toMillis());
} catch (IOException e) {
e.printStackTrace();
}
}
Я побежал выше методы в следующем порядке ,
1-> getFIleInfo()
2-> readFIleData()
3-> getFIleInfo()
я получил следующее в качестве выходного сигнала,
accessTime : 1462943491685
modifiedTime : 1462943925846
Data : erteuyuittdgfdfghjkhw5643rtrr66664fdghf
accessTime : 1462943491685
modifiedTime : 1462943925846
Вот выходной раз в формате строки,
accessTime : 2016-05-11T05:11:31.685881Z
modifiedTime : 2016-05-11T07:39:28.237884Z
Data : erteuyuittdgfdfghjkhw5643rtrr66LE229F1HBQ664fdghf
accessTime : 2016-05-11T05:11:31.685881Z
modifiedTime : 2016-05-11T07:39:28.237884Z
У меня есть сомнения по поводу этой продукции, поскольку время доступа остается такой же, как перед чтением данных из файла. Может кто-нибудь, пожалуйста, объясните мне, что на самом деле означает последнее время доступа и последнее измененное время в java?
[Это может быть причиной] (http://superuser.com/questions/251263/the-last-access-date-is-not-changed-even-after-reading-the-file-on-windows -7). С другой стороны, на какой ОС вы работаете? Возможно, это не ошибка Javas, но вместо этого ОС не обновляет ее правильно – Draken
Win8.1 64bit здесь, и я могу реплицировать то же самое. Интересно. –
Java ничего не делает сам по себе: он просто запрашивает значения базовой файловой системы. Просто убедитесь, что просто создайте текстовый файл, посмотрите * с помощью инструментов os или файловой системы * во время доступа ('ls -atime' на Unix-like или explorer в Windows), подождите одну или две минуты, отобразите файл и еще раз посмотреть время доступа. Если ничего не изменилось, основная файловая система виновата. –