比较两个文件是否相同 Java

一、读取文件内容

二、将读取的文件转为list

三、使用guava里的difference方法,直接比较

public Sets.SetView<String> compareTwoFile(String oldFile, String newFile) throws IOException {

        BufferedReader oldReader = new BufferedReader(new FileReader(oldFile));
        BufferedReader newReader = new BufferedReader(new FileReader(newFile));

        HashSet<String> oldSet = Sets.newHashSet(oldReader.lines().collect(Collectors.toList()));
        HashSet<String> newSet = Sets.newHashSet(newReader.lines().collect(Collectors.toList()));

        //旧文件与新文件的差异
        return Sets.difference(oldSet,newSet);
        
        //旧文件与新文件的差异
//        return  Sets.difference(newSet,oldSet);
    }

测试

@Test
public void test() throws IOException {
    String oldFile = "/Users/xxx/xxx/xxx/newFile.txt";
    String newFile = "/Users/xxx/xxx/xxx/oldFile.txt";

    Sets.SetView<String> result = compareTwoFile(oldFile,newFile);
    System.out.println("旧文件有,新文件没有的内容:"+result.size());
    System.out.println(result);

    Sets.SetView<String> result1 = compareTwoFile(oldFile,newFile);
    System.out.println("新文件有,旧文件没有的内容:"+result1.size());
    System.out.println(result1);
}

Guava:Google 的 Java 核心库

Guava 是 Google 的一组核心 Java 库,其中包括新的集合类型(例如多映射和多集)、不可变集合、图库以及并发、I/O、哈希、原语、字符串等实用程序!它在 Google 的大多数 Java 项目中得到广泛使用,并且也被许多其他公司广泛使用。

番石榴有两种口味:

将 Guava 添加到你的构建中

Guava 的 Maven 组 ID 是com.google.guava,其工件 ID 是guava。Guava 提供两种不同的“风格”:一种用于 (Java 8+) JRE,一种用于 Android 或任何希望与 Android 兼容的库。这些风格在 Maven 版本字段中指定为 或33.2.1-jre。 33.2.1-android有关依赖 Guava 的更多信息,请参阅 在构建中使用 Guava

要使用 Maven 添加对 Guava 的依赖,请使用以下命令:

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>33.2.1-jre</version>
  <!-- or, for Android: -->
  <version>33.2.1-android</version>
</dependency>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值