我想做1.txt减去2.txt的内容,并在3.txt中输出。此外,如果2.txt有多余的剩余行,则在4.txt中输出它。
文本文件的内容不是逐行排列的,所以基本上代码只需要删除匹配的行,如下所示:
1.文本包含:
example1
example2
example3
2.txt包含:
example2
example3
example4
3.txt将包含:
example1
4.txt将包含:
example4
使用番石榴:
Set<String> lines1 =
new HashSet<>(Files.readLines(new File("1.txt"), Charsets.UTF_8));
Set<String> lines2 =
new HashSet<>(Files.readLines(new File("2.txt"), Charsets.UTF_8));
Set<String> minus1 = Sets.difference(lines1, lines2);
Set<String> minus2 = Sets.difference(lines2, lines1);
Files.asCharSink(new File("3.txt"), Charsets.UTF_8).writeLines(minus1);
Files.asCharSink(new File("4.txt"), Charsets.UTF_8).writeLines(minus2);