2014-06-13 1 views
0

현재 날짜와 시간이 파일 이름에 추가 된 파일을 Java로 작성하려고합니다. 그런 다음 파일을 작성한 후 동일한 파일을 읽고 싶지만 날짜와 시간은 시간이 변경되어 파일을 찾을 수 없습니다.이름에 날짜가있는 파일을 쓰고 읽는 중

records = reader.readData(dirName2G3GPS + "\\\\2g3gPS_Messages_Statistics_" + 
    df.format(new Date()) + ".csv"); 

내가 10시 54분에서 파일을 작성 가정하자 :

File messagesFile = new File(dirName + "\\2g3gPS_Messages_Statistics_" + 
    df.format(new Date()) + ".csv"); 
if (!messagesFile.exists()) { 
    messagesFile.createNewFile(); 
} 

파일을 읽어

내가

DateFormat df = new SimpleDateFormat("yyyy-MM-dd_HH.mm.ss"); 

파일을 작성하려 한 것입니다 : 10과 10:54:50에 읽으려고하면 파일을 찾을 수 없습니다.

디렉토리에 쓰여진 최신 파일을 어떻게 읽을 수 있습니까? 다른 직업이 있습니까?

+3

'날짜'와 동일한 인스턴스를 사용하고 새 인스턴스를 만들지 마십시오. –

+1

날짜를 변수에 저장하면이 날짜를 다시 쓰거나 쓰거나 파일 이름을 genereate 할 수 있습니다. – 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을 사용하여 파싱 된 파일 이름 시간을 비교하십시오.