JDK 12向Files类引入了一种新方法。 方法Files.mismatch(Path,Path)已通过JDK-8202302引入JDK 12,并在JDK 12 Early Access Build 20 (支持新{@systemProperty} Javadoc标记的相同早期访问版本)中可用 。

JDK-8202302 [“用于比较文件的(fs)New Files.mismatch方法”]添加Files.mismatch(Path,Path)方法“比较两个文件的内容以确定它们之间是否存在不匹配”,并且可以用于确定“两个文件是否相等”。 曾有一次添加File.isSameContent()方法的讨论 ,但由于它与“ Arrays.mismatch和Buffer.mismatch方法”的一致性,因此决定使用Files.mismatch(Path,Parh)

下一个代码清单包含一个简单的Java类,该类演示了新的Files.mismatch(Path,Path)并将其与Files.isSameFile(Path,Path)进行对比。

package dustin.examples.jdk12.files;import java.nio.file.Files;
import java.nio.file.Path;import static java.lang.System.out;/*** Demonstrate {@code Files.mismatch(Path,Path)} introduced with JDK 12* and useful for determining if two files have the same content even* if they're not the same files.*/
public class FilesDemo
{public static void main(final String[] arguments) throws Exception{if (arguments.length < 2){out.println("USAGE: FilesDemo <file1Name> <file2Name>");return;}final String file1Name = arguments[0];final Path file1Path = Path.of(file1Name);final String file2Name = arguments[1];final Path file2Path = Path.of(file2Name);out.println("\nFiles '" + file1Name + "' and '" + file2Name + "' are "+ (Files.isSameFile(file1Path, file2Path) ? "the" : "NOT the")+ " same.\n\n");out.println("\nFiles '" + file1Name + "' and '" + file2Name + "' are "+ (Files.mismatch(file1Path, file2Path) == -1 ? "the" : "NOT the")+ " same content.\n\n");}
}

当针对各种文件组合执行上述代码时,它将提供在下表中捕获的结果。

文件关系 Files.isSameFile(Path,Path) Files.mismatch(Path,Path)
同一文件 true true
复制的文件 false true
不同的文件 false false
软链接 true true
硬连结 true true

添加Files.mismatch(Path,Path)是完成JDK-6852033 [“使常见的I / O任务更容易执行的输入/输出方法”]的又一个步骤,它使确定两个不相同文件的时间变得更容易。相同文件仍然“相等”或具有相同内容。

翻译自: https://www.javacodegeeks.com/2018/11/jdk-12s-files-mismatch-method.html

JDK 12的Files.mismatch方法相关推荐

  1. jdk12 jdk1.8_JDK 12的Files.mismatch方法

    jdk12 jdk1.8 JDK 12向Files类引入了一种新方法. 方法Files.mismatch(Path,Path)已通过JDK-8202302引入JDK 12,并在JDK 12 Early ...

  2. JDK 12的String :: transform方法的简要但复杂的历史

    最近有人建议从JDK 12中删除Java预览功能Raw String Literals ( JEP 326 ), 现在正式宣布将删除预览功能 ( Java SE 12 [JSR 386] 25版将其删 ...

  3. jdk安装教程_在JDK 12精简数字格式中使用最小分数数字

    jdk安装教程 帖子"紧凑数字格式出现在JDK 12中"演示了对JDK 12中NumberFormat的支持,以支持紧凑数字格式. 该帖子中显示的示例仅使用NumberFormat ...

  4. JDK 11 马上就要来了!JDK 12 还会远吗?

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   JDK 11 发布时间马上到来,于此同时,JDK 12 发布时间也已确定 -- 2019年3月19日.是的,6个月之后又能迎来新版本了! 甲 ...

  5. jdk8 string::_JDK 12的String :: transform方法的简要但复杂的历史

    jdk8 string:: 最近有人提议从JDK 12中删除Java预览功能Raw String Literals ( JEP 326 ), 现在正式宣布将删除该预览功能 ( Java SE 12 [ ...

  6. 精简jdk包_在JDK 12精简数字格式中使用最小分数数字

    精简jdk包 帖子" 紧凑数字格式出现在JDK 12中 "演示了对JDK 12中 NumberFormat的支持,以支持紧凑数字格式 . 该帖子中显示的示例仅使用NumberFor ...

  7. 精简jdk包_具有JDK 12精简数字格式的自定义精简数字模式

    精简jdk包 帖子" 紧凑数字格式出现在JDK 12中 "已经成为有关Java subreddit线程的讨论主题 . 在那个线程中表达的与紧凑数字格式表示有关的问题涉及显示的精度数 ...

  8. 在JDK 12精简数字格式中使用最小分数数字

    帖子" 紧凑数字格式出现在JDK 12中 "演示了对JDK 12中 NumberFormat的支持,以支持紧凑数字格式 . 该帖子中显示的示例仅使用NumberFormat的调用重 ...

  9. JDK 12附带紧凑数字格式

    JDK 12 Early Access Build 24引入了对紧凑数字格式的支持 . JDK-8188147(紧凑数字格式支持)CSR的"摘要"是简单的句子,"添加了对 ...

最新文章

  1. php如何检测在另一台设备登录怎么做_如何使用Metasploit的Web Delivery Script和命令注入弹出Shell(翻译)...
  2. 团队-科学计算器-模块测试过程
  3. 最全mysql的复制和读写分离
  4. Caffe官方教程翻译(4):CIFAR-10 turorial
  5. wpf 在另一个窗体上显示_另一个唐伯虎:大街上裸身奔跑、锒铛入狱多次自裁未遂...
  6. Google https服务被屏蔽
  7. ASA 5.0/8.0/9.0 杂记
  8. OpenLDAP 2.4.44 安装 + phpLDAPadmin 安装
  9. python语言入门-分分钟入门python语言
  10. ctags的如何生成tags文件
  11. 利用EXCEL对数据进行比对,以及提取有效数据
  12. 计算机电源24针,ATX电源20针和24针接口定义
  13. 如何实现一个基于HTML5的实时视频直播
  14. Xcode图片素材Slicing处理(包括缩放和延伸)
  15. postgresql如何优雅地清理磁盘空间碎片VACUUM
  16. Java中static、this、super、final用法
  17. 726. 原子的数量
  18. 如何获得凤凰网或腾讯视频链接并下载到本地
  19. 汇编语言|实例1——大写字母转换成小写字母
  20. QQ群无故消失或QQ群无故被解散

热门文章

  1. Codeforces Round #654 (Div. 2)
  2. 【线段树】扇形面积并(P3997)
  3. 计蒜客 91 地铁 HDU 5263 平衡大师(二分+网络流)
  4. Codeforces 786B Legacy (线段树优化建图)
  5. SpringCloud Zuul(九)之路由自动刷新原理
  6. Java压缩技术(五) GZIP相关——浏览器解析
  7. JVM 优化经验总结
  8. ByteBuffer的使用
  9. 你真的了解Java中的三目运算符吗
  10. 轻松几步搞定SSH连接Git配置