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,但你可以很容易地計算它們,將它們保存到文件等。
添加回答
舉報