我在一个文件夹中有大约 100 个文件。每个文件都有这样的数据,每一行都类似于一个用户 ID。
960904056
6624084
1096552020
750160020
1776024
211592064
1044872088
166720020
1098616092
551384052
113184096
136704072
我正在尝试继续将该文件夹中的文件合并到一个新的大文件中,直到该新大文件中的用户 ID 总数变为 1000 万。
我能够从特定文件夹中读取所有文件,然后继续从链接哈希集中的这些文件中添加用户 ID。然后我想看看hashset的大小是否为1000万,如果是1000万,那么将所有这些用户ID写入一个新的文本文件。这是可行的解决方案吗?
这 1000 万个数字应该是可配置的。将来,如果我需要将那 1000 万换成 1o 5000 万,那么我应该能够做到。
下面是我到目前为止的代码
public static void main(String args[]) {
File folder = new File("C:\\userids-20130501");
File[] listOfFiles = folder.listFiles();
Set<String> userIdSet = new LinkedHashSet<String>();
for (int i = 0; i < listOfFiles.length; i++) {
File file = listOfFiles[i];
if (file.isFile() && file.getName().endsWith(".txt")) {
try {
List<String> content = FileUtils.readLines(file, Charset.forName("UTF-8"));
userIdSet.addAll(content);
if(userIdSet.size() >= 10Million) {
break;
}
System.out.println(userIdSet);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
任何帮助将不胜感激?还有更好的方法来做同样的过程吗?