比较Java中两个csv文件的内容

时间:2019-05-28 20:22:09

标签: java csv

我正在尝试比较两个csv文件的内容。我有csv文件test1.csv和test2.csv。两者的内容应该相同..如果不相同,那么我想将差异传输到.txt文件中。如果每件事都是平等的,那一切都是正确的。

我刚刚创建了两个带有内容的列和行的测试csv文件

第一列是相应表的主键。我想通过识别符进行比较

test1.csv
1,Max,New York
2,David,Jersey
test2.csv
1,Max,California
2,David,Jersey

.txt中的输出应为"1,Max,New York"

我没有密码。而且,我对每一个住所都很高兴,并暗示我可以得到。预先谢谢你。

2 个答案:

答案 0 :(得分:0)

我建议最简单的方法是使用在线工具比较两个文件内容,这将使您了解不同之处。您可以参考以下链接。

here

如果需要,可以使用需要下载的工具,例如winmerge。

如果要用Java实现,请参考下面的两个链接。

https://www.diffchecker.com/diff

https://javaconceptoftheday.com/compare-two-text-files-in-java/

答案 1 :(得分:0)

如果在前面有记录标识符。在这种情况下,如果尚未对一个或两个文件进行排序,则需要对它们进行排序,并开始从文件一个文件逐行读取并在第二个文件中搜索相等的ID。有多种优化策略,此处排序是最通用的。由于第二个关键字是基本排序的,因此如果使用索引,搜索将非常快。

一个适用于中小型文件的朴素解决方案示例是读取内存中的第二个文件,并将其排列在TreeMap中(这将对其进行隐式排序),其中键是ID,值是行。

然后,您逐行分层读取源文件,并根据树图测试行是否相等。如果不是,则决定如何处理这两行。