2 回答
TA贡献1802条经验 获得超4个赞
您可以尝试使用此实用程序来比较 2 个 CSV 文件。
csv-comparator
CsvComparator comparator = CsvComparator.builder()
.onColumns("email", "firstname", "lastname")
.onCsvFiles(
"path/to/actual.csv",
"path/to/expected.csv")
.byIdentityColumn("email")
.build();
CsvComparisonResult result = comparator
.saveDiffAt("build/csv-results")
.perform();
// Check diff:
Assertions.assertTrue(result.hasDiff());
// Check addition, deletion, modification are also:
Assertions.assertTrue(result.hasRowAdded());
Assertions.assertTrue(result.hasRowDeleted());
Assertions.assertTrue(result.hasRowModified());
TA贡献1765条经验 获得超5个赞
像这样简化你的代码(对al2做同样的事情):
ArrayList<String> al1=new ArrayList();
BufferedReader CSVFile1 = new BufferedReader(new FileReader(file1));
String dataRow1;
while ((dataRow1 = CSVFile1.readLine()) != null) {
al1.add(dataRow1);
}
然后从文件中查找不在另一个文件中的行(对 al1 vs al2 执行相同的操作):
for (String s : al2) {
if (!al1.contains(s)) {
System.out.println("In file 2, but not in file 1: " + s);
}
}
for 循环为您提供不同的行。我刚刚做了System.out.println,但你可以很容易地计算它们,将它们保存到文件等。
添加回答
举报
