запись и чтение файла с датой в имени

#java #file #file-io #io #filereader

#java #файл #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, тогда он не найдет файл.

Как я могу прочитать последний файл, записанный в каталоге. Есть ли какая-либо другая работа aorund?

Комментарии:

1. Используйте тот же экземпляр Date , не создавайте новый.

2. Сохраните дату в переменной, чтобы вы могли использовать эту дату путем повторного чтения и записи или генерировать имя файла один раз.

Ответ №1:

Вы вызываете new Date() , который укажет время, когда он вызывается — разное для записи и чтения.

Вместо этого вызовите Date date = new Date() и используйте это date в обоих местах

Ответ №2:

Прежде всего, вы должны отслеживать свое 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 каталоге имеют одинаковый формат имени файла.

Ответ №3:

Получите список каталогов и используйте Calendar или Joda-Time для сравнения раз проанализированных имен файлов.