J'écris un test unitaire où deux fichiers sont écrits avec environ 512Kb de données. Je leur écris l'un après l'autre. J'ai pensé que puisqu'ils sont écrits séquentiellement, le fichier deux serait plus long de quelques millisecondes que le fichier un (mon hypothèse ici est que l'écriture de 512 Ko prendrait au moins 1 milliseconde). Cependant, la fonction lastModified()
donne le même temps pour les deux. Je suppose que cela signifie que les deux fichiers ont été écrits en moins d'une milliseconde, donc en même temps pour les deux, mais cela semble improbable. Quoi d'autre pourrait faire que les deux fichiers aient le même temps modifié?Deux fichiers avec le même temps modifié?
public void Info_FullLogWrittenToFileOneAndTwo_TestStringInLogOne() {
DevilLog log = DevilLog.getLogger(appContext, LOG_FILE_NAME, LogFileTest.class.getSimpleName());
clearAllLogFiles();
fillLogToMaxSize(LOG_ONE_NAME);
fillLogToMaxSize(LOG_TWO_NAME);
...
}
// in another file...
long logOneModifiedTime = logOne.lastModified();
long logTwoModifiedTime = logTwo.lastModified();
File chosenFile;
if (logOneModifiedTime >= logTwoModifiedTime) // modified time is the same
fillLogToMaxSize
est un simple écriture à un fichier en utilisant FileWriter
. Edit: Hm, écrire 512 Ko va probablement être différentes vitesses en fonction de la vitesse du processeur, et la vitesse d'écriture du disque dur. N'est-il pas si farfelu de penser que 512 Ko pourrait prendre moins d'une milliseconde sur un Core i5 en utilisant un SSD?
Etes-vous sûr que le système de fichiers conserve les temps de modification à une précision de l'ordre de la milliseconde? Normalement ça va juste en secondes. – Henry
Je ne sais pas si cela s'applique à Android, mais voir http://stackoverflow.com/questions/24804618/get-file-mtime-with-millisecond-resolution-from-java –