2 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以嘗試使用此實(shí)用程序來比較 2 個(gè) 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貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
像這樣簡化你的代碼(對(duì)al2做同樣的事情):
ArrayList<String> al1=new ArrayList();
BufferedReader CSVFile1 = new BufferedReader(new FileReader(file1));
String dataRow1;
while ((dataRow1 = CSVFile1.readLine()) != null) {
al1.add(dataRow1);
}
然后從文件中查找不在另一個(gè)文件中的行(對(duì) al1 vs al2 執(zhí)行相同的操作):
for (String s : al2) {
if (!al1.contains(s)) {
System.out.println("In file 2, but not in file 1: " + s);
}
}
for 循環(huán)為您提供不同的行。我剛剛做了System.out.println,但你可以很容易地計(jì)算它們,將它們保存到文件等。
添加回答
舉報(bào)