2014-06-13 63 views
0

我想在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

使用'Date'的同一個實例,不要創建一個新的。 –

+1

將日期存儲在變量中,以便您可以通過重新寫入和寫入來使用這些日期,或者一次生成文件名。 – Jens

回答

1

你打電話給new Date(),它會給它被叫的時間 - 不同的寫作和閱讀。

改爲調用Date date = new Date()並在兩個地方

0

首先使用這個date,你應該跟蹤,你用來寫一個文件以後再次讀取該文件的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目錄中的所有文件具有相同的文件名格式下工作。

0

獲取目錄列表並使用日曆或Joda-Time比較解析的文件名稱時間。