我有一个 Java 应用程序,我正在使用 openCSV 读取文件(非常大)。然后,我将第 4 列(如果有影响,最终将添加另一列或两列)列放入 HashSet 并将其输出到新文件。这一切似乎工作正常,但我发现它只是读取文件的一部分(272,948 行中的 131,544 行)。这是 openCSV 或 Java 的一般限制,还是有办法解决这个问题?
我的参考代码:
public static void main(String[] args) throws IOException {
String itemsFile = new String();
String outFile = new String();
itemsFile = "items.txt";
outFile = "so.txt";
CSVReader reader = null;
try {
reader = new CSVReader(new FileReader(itemsFile), '\t');
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
String[] nextLine;
HashSet<String> brands = new HashSet<>();
while ((nextLine = reader.readNext()) != null) {
brands.add(nextLine[4]);
}
String[] brandArray = new String[brands.size()];
Iterator<String> it = ((HashSet<String>) brands).iterator();
int listNum = 0;
while (it.hasNext()) {
Object brand = (Object) it.next();
brandArray[listNum] = (String) brand;
listNum++;
}
CSVWriter writer = new CSVWriter(new FileWriter(outFile), '\n');
writer.writeNext(brandArray);
writer.close();
}
如果我的代码乱七八糟,我深表歉意,这是我第一个真正的“已完成”Java 应用程序。非常感谢任何帮助。
我什至尝试从 txt 文件中删除这些行,以确保它没有挂在某个字符或其他东西上,但无论如何它似乎都停在那条线上