【发布时间】:2017-08-05 16:23:06
【问题描述】:
我正在编写一个单元测试,其中两个文件正在写入大约 512Kb 的数据。我一个接一个地给他们写信。我认为由于它们是按顺序写入的,因此文件二会比文件一大几毫秒(我在这里的假设是写入 512Kb 至少需要 1 毫秒)。但是,lastModified() 函数为两者提供了相同的时间。我猜这意味着这两个文件都被写入不到一毫秒,因此两者的时间相同,但这似乎不太可能。还有什么可能导致两个文件具有相同的修改时间?
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 是使用FileWriter 对文件的简单写入。
编辑:嗯,写入 512Kb 的速度可能会有所不同,具体取决于处理器速度和硬盘写入速度。认为 512Kb 在使用 SSD 的 i5 核心上可能需要不到一毫秒的时间是不是太牵强了?
【问题讨论】:
-
您确定,文件系统将修改时间保持在毫秒精度吗?通常它只需几秒钟。
-
我不知道这是否适用于Android,但请参阅stackoverflow.com/questions/24804618/…
标签: android filewriter