Java学习系列:比较两个文件的差异,并输出差异的部分

您所在的位置:网站首页 比较两文件内容不一样 Java学习系列:比较两个文件的差异,并输出差异的部分

Java学习系列:比较两个文件的差异,并输出差异的部分

2024-01-09 14:48| 来源: 网络整理| 查看: 265

文章目录 场景环境正文思路示例样例输出 总结随缘求赞

场景

临下班的时候,上级交给我一个任务,要求把某个目录的配置文件和官方的配置文件做对比,比较一下,得到现有配置文件与官方配置文件的差异。

环境 软件版本JDK1.8 正文 思路

使用JDK 1.8的流的方式,将文件以行的形式读取出来,然后对比官方配置文件,判断不匹配即为差异的部分。

示例

接下来就展示一下代码部分,各位读者请看:

/** * 匹配两个文件的差异,主要输出新文件与旧文件的差异,并输出 * @param oldFile 旧的文件 * @param newFile 当前新文件 * @throws IOException 异常 */ public static void compareTwoFile(String oldFile, String newFile) throws IOException { List list1 = Files.readAllLines(Paths.get(oldFile)); List list2 = Files.readAllLines(Paths.get(newFile)); log.info("比较{}和{}两个文件,以 {} 为主", oldFile, newFile, newFile); List finalList = list2.stream().filter(line -> list1.stream().filter(line2 -> line2.equals(line)).count() == 0 ).collect(Collectors.toList()); if (finalList.size() == 0) { log.info("两个文件无差异"); }else{ log.info("以下为差异的地方:"); finalList.forEach(one -> System.out.println(one)); } } 样例输出 18:10:19.034 [main] INFO thread.TestCompareFile - 比较D:\software\tomcat\apache-tomcat-7.0.62\conf\catalina.policy 和D:\software\tomcat\apache-tomcat_T\conf\catalina.policy两个文件, 以 D:\software\tomcat\apache-tomcat_EOMS_FT\conf\catalina.policy 为主 18:10:19.110 [main] INFO thread.TestCompareFile - 两个文件无差异 总结

使用JDK1.8的Files工具类,可以轻松地将文件以行的方式读取出来,并通过流的方式逐行与官方配置文件做比较,匹配出差异部分,并输出。善于使用官方提供的工具类,减少重复造轮子的时间和精力,并比较好地解决上级交付的任务。

随缘求赞

如果我的文章对大家产生了帮忙,可以在文章底部点个赞或者收藏; 如果有好的讨论,可以留言; 如果想继续查看我以后的文章,可以左上角点击关注 拜拜



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3