Nella mia applicazione leggo file usando seguente metodo,Il tempo di accesso all'ultimo file e l'ultima volta modificata in 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();
}
}
}
Inoltre ottengo ora di accesso e l'ultima volta modificata del file utilizzando seguente metodo,
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();
}
}
ho corse metodi di cui sopra in ordine seguente ,
1-> getFIleInfo()
2-> readFIleData()
3-> getFIleInfo()
mi ha fatto seguito come output,
accessTime : 1462943491685
modifiedTime : 1462943925846
Data : erteuyuittdgfdfghjkhw5643rtrr66664fdghf
accessTime : 1462943491685
modifiedTime : 1462943925846
Ecco gli orari di uscita in formato stringa,
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
Ho un dubbio su questa uscita perché il tempo di accesso rimane la stessa di prima lettura dei dati del file. Qualcuno può spiegarmi che cosa è in realtà significato per l'ultimo accesso e l'ultima volta in java?
[Questa potrebbe essere la ragione] (http://superuser.com/questions/251263/the-last-access-date-is-not-changed-even-after-reading-the-file-on-windows -7). In un'altra nota, su quale sistema operativo si sta eseguendo? Potrebbe non essere colpa di Javas, ma invece il SO non lo aggiorna correttamente – Draken
Win8.1 64bit qui e posso replicare lo stesso. Interessante. –
Java non fa nulla da solo: richiede solo valori al file system sottostante. Per sicurezza, basta creare un file di testo, guardare * con gli strumenti os o file system * al momento dell'accesso ('ls -atime' su Unix-like, o explorer su Windows), attendere uno o due minuti, visualizzare il file e guardare ancora una volta il tempo di accesso. Se nulla è cambiato, il file system sottostante è colpevole. –