如何在不考虑行顺序的情况下区分两个不同的文本文件?

Die*_*ego 4 java diff properties

我有两个包含信息的属性文件.我想对它们进行区分,看看它们是否相同.但是,在属性文件中,除非您指定要输出的顺序,否则它们会以不同的顺序写入文件.我无法访问这些文件的代码.如何检查其内容是否相同?

例如,

File1    File2
a        e
b        c
c        a
d        d
e        b
Run Code Online (Sandbox Code Playgroud)

如何检测这两个文件是否相同?ae代表信息串

谢谢!

Jon*_*nik 9

您已经接受了答案,但无论如何我都会添加它,只是为了指出有一种更简单的方法(假设您正在讨论普通的Java属性文件).

实际上,您自己不需要进行任何排序,逐行比较等,因为equals()java.util.Properties已经巧妙地实现并且可以实现预期的效果.换句话说,就像约书亚布洛赫所说的那样," 了解并使用图书馆 ".:-)

这是一个例子.给定文件p1.properties:

a = 1
b = 2
Run Code Online (Sandbox Code Playgroud)

并且p2.properties:

b = 2
a = 1
Run Code Online (Sandbox Code Playgroud)

...你可以阅读它们并将它们与equals()进行比较:

Properties props1 = new Properties();
props1.load(new FileReader("p1.properties"));    
Properties props2 = new Properties();
props2.load(new FileReader("p2.properties"));

System.out.println(props1.equals(props2)); // true
Run Code Online (Sandbox Code Playgroud)