有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java编写和读取名称中包含日期的文件

我试图用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读取,那么它将找不到文件

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


共 (2) 个答案

  1. # 1 楼答案

    首先,您应该跟踪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. # 2 楼答案

    您正在调用new Date(),这将给出调用它的时间——对于书写和阅读来说是不同的

    取而代之的是调用Date date = new Date()并在这两个地方使用这个date