Java学习系列:比较两个文件的差异,并输出差异的部分 |
您所在的位置:网站首页 › 比较两文件内容不一样 › Java学习系列:比较两个文件的差异,并输出差异的部分 |
文章目录
场景环境正文思路示例样例输出
总结随缘求赞
场景
临下班的时候,上级交给我一个任务,要求把某个目录的配置文件和官方的配置文件做对比,比较一下,得到现有配置文件与官方配置文件的差异。 环境 软件版本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 |