gpt4 book ai didi

java - 循环从层次结构的不同文件夹中读取多个文件

转载 作者:行者123 更新时间:2023-12-01 05:25:00 25 4
gpt4 key购买 nike

我有一个代码,可以从文件夹中检索多个对象,对其进行反序列化并将其添加到字符串数组中

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 创建了一个 bin,则该 bin 文件将存储在 2012 年->3 月->21 日->17 小时->15 分钟->32 秒的文件夹下 -> 1 个或多个 bin 文件,具体取决于当时创建的数量。

如果我必须正常地从这个层次结构中检索 bin 文件,我可以在用户输入的时间成功完成它。但是,如果给定时间间隔,则检索从 17:15:35 到 17:20:35 的所有 bin 文件;其中我必须返回在第 15 分钟的第 35 秒、第 15 分钟的第 36 秒获得的所有 bin 文件。 ...第 16 分钟的第 1 秒,依此类推,直到 20 分钟的 35 秒;从而准确地完成 5 分钟的时间窗口并检索该时间间隔内的所有 bin 文件。此外,不必每秒发布一个 bin 文件,因为可能会发生一秒或一分钟甚至一秒或一分钟的情况,没有创建 bin 文件,因此层次结构中不存在第二/分钟文件夹。也就是说,可能在 17:18:0 到 17:19:0 期间没有创建 bin 文件; bin 文件创建可能/可能不一致。 bin 文件的所有数据都必须存储在一个字符串数组中。无论我如何循环它,我都无法达到预期的结果,所以我在这里放置了基本代码。我该如何去做呢?请帮忙

最佳答案

使用您的解决方案,您将创建数十亿个文件夹和文件,只是为了存储 String 对象。最好使用数据库并将字符串和真实时间戳添加到表中,以便您可以在一段时间内轻松访问它们。这对于并发用户访问来说也更好。

关于java - 循环从层次结构的不同文件夹中读取多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9803489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com