我有一個文件夾中檢索多個對象的編碼,解串,並將其添加到字符串數組循環從層次結構的不同文件夾中讀取多個文件
public static String[] play(){
int i = 0;
List<String> args = new ArrayList<String>();
while (true) {
try {
args.add(processFile(i));
System.out.println(i);
i++;
}
catch (Exception e) {
System.out.println("No more files");
break;
}
}
String[] array = args.toArray(new String[0]);
return array;
}
private static String processFile(int fileNumber) throws Exception {
File file=new File("E:/proj/"+fileNumber+".bin");
FileInputStream fin=new FileInputStream("E:/proj/"+fileNumber+".bin");
//reading the byte content of the bin files
byte fileContent[] = new byte[(int)file.length()];
fin.read(fileContent);
//store the deserialized object that is returned to an object.
Object obj=serializer.toObject(fileContent);
//converting the obtained object to string and storing it to args, a string[]
String word=obj.toString();
return word;
}
}
這示例代碼,檢索打開此層次結構後面的「秒」文件夾的消息。 TIMESTAMP CHART這個文件夾最後可以看到。序列化的bin文件的存儲是這樣的,一秒鐘內創建的bin文件的數量存儲在該「秒」文件夾中。也就是說,如果在17:15:32 pm創建了一個bin,bin文件將被存儲在2012年 - > 3月 - > 21日期 - > 17小時 - > 15分鐘 - > 32秒的文件夾下 - > 1個或更多的bin文件,取決於在那一秒創建了多少個bin文件。
如果我必須從這個層次結構中正常檢索bin文件,我可以成功地爲用戶輸入時間。但是如果給定時間間隔,比如說從17:15:35到17:20:35檢索所有的bin文件,那麼我將不得不返回在15分35秒,15分36秒得到的所有bin文件。 ...第16分鐘第1秒等等,直到35秒20分鐘;從而完全準確地完成5分鐘的時間窗口並檢索該間隔中的所有bin文件。此外,不必每秒發佈一個bin文件,因爲它可能發生在第二次或一分鐘內,沒有創建bin文件,因此第二個/分鐘文件夾不存在於層次結構中。也就是說,也許是17:18:0到17:19:0,沒有創建bin文件;可能/不可能創建bin文件的一致性。並且bin文件的所有數據都必須存儲在一個字符串數組中。 無論我如何循環它,我無法達到預期的結果,所以我在這裏提出基本代碼。我如何去做呢?請幫助
請問您可以說明一下,因爲我可以使用實時時間戳嗎? – kuki 2012-03-26 05:45:08