在名称中写入和读取带有日期的文件

时间:2014-06-13 08:56:19

标签: java file file-io io filereader

我正在尝试在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读它,然后它就找不到文件了。

如何读取目录中写入的最新文件。还有其他工作吗?

3 个答案:

答案 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来比较解析的文件名时间。