gpt4 book ai didi

java - 从文件夹中采样文件

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

我有一个包含100000个文件的文件夹,需要通过随机采样从该文件夹中获取1000个文件。是否有任何示例函数可用于从文件夹中进行采样?另外,如何将采样文件复制到另一个文件夹中?

最佳答案

随机选择可以遵循以下原则

File files[] = new File("/path/to/files").listFiles();
Map<Integer, File> selection = new HashMap<Integer, File>(1000);
while (selection.size() < 1000) {
int value = (int)Math.round(Math.random() * files.length);
if (!selection.containsKey(value)) {
selection.put(value, files[value]);
}
}
for (File file : selection.values()) {
System.out.println(file);
}

本质上,您需要获取可用文件的列表,并在列表中随机选择,直到有足够的样本。查看java.io.File

有很多通过网络(和 SO)复制文件的例子。如果你真的被困住了,你可以看看 IO TrailApache Commons IO我相信它有一个能够处理文件的实用程序类

已更新

按照 Andrew 的建议,您可以简单地打乱文件列表并提取前 1000 个元素...

File files[] = new File("/path/to/files").listFiles();
List<File> selection = null;
List<File> fileList = new ArrayList<File>(Arrays.asList(files));
Collections.shuffle(fileList);
selection = fileList.subList(0, Math.min(1000, fileList.size()));

for (File file : selection) {
System.out.println(file);
}

关于java - 从文件夹中采样文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13243770/

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