我正在尝试在java中编写一个文件,并在文件名中附加当前日期和时间,然后我想在编写后读取相同的文件,但日期和时间发生了变化,无法找到文件。
这就是我试过的
DateFormat df = new SimpleDateFormat( "yyyy-MM-dd_HH.mm.ss" );
写下文件:
File messagesFile = new File(dirName + "\\2g3gPS_Messages_Statistics_" +
df.format(new Date() ) + ".csv");
if (!messagesFile.exists()) {
messagesFile.createNewFile();
}
阅读文件:
records = reader.readData(dirName2G3GPS + "\\\\2g3gPS_Messages_Statistics_" +
df.format(new Date() ) + ".csv");
假设我在10:54:10写了这个文件,我试着在10:54:50读它,然后它就找不到文件了。
如何读取目录中写入的最新文件。还有其他工作吗?
答案 0 :(得分:1)
你正在打电话给new Date()
,这会给你的时间 - 给写作和阅读带来不同。
而是拨打Date date = new Date()
并在两个地方使用此date
答案 1 :(得分:0)
首先,您应该跟踪用于写入文件的new Date()
值,以便稍后再次读取该文件。
如果您始终想要从给定目录中读取最新文件,则可以对文件名进行排序并读取最后一个文件。 这样的事情可能有所帮助:
File dir = new File(dirName);
String[] filenames = dir.list();
Arrays.sort(filenames);
File latestFile = new File(dir.getParentFile(), filenames[filenames.length - 1]);
当然,此解决方案可以假设dirName
目录中的所有文件都具有相同的文件名格式。
答案 2 :(得分:0)
获取目录列表并使用日历或Joda-Time来比较解析的文件名时间。