JDK 12的Files.mismatch方法

JDK 12Files类引入了一种新方法该  Files.mismatch(Path,Path) 方法已通过JDK-8202302引入JDK 12,并在JDK 12 Early Access Build 20中提供(同样的早期访问构建支持新的{@systemProperty} Javadoc标记)。

JDK-8202302 [“(fs)用于比较文件的新Files.mismatch方法”]添加Files.mismatch(Path,Path)方法“比较两个文件的内容以确定它们之间是否存在不匹配”,并可用于确定“两个文件是否是等于。” 曾经有人谈过添加Files.isSameContent()方法,但Files.mismatch(Path,Parh)由于其与Arrays.mismatchBuffer.mismatch方法的一致性,决定使用

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


包 尘。例子。jdk12。档案 ;

导入 java。nio。档案。档案 ;
导入 java。nio。档案。路径 ;

import  static  java。郎。系统。出 ;

/ **
 *演示JDK 12引入的{@code Files.mismatch(Path,Path)}
 *用于确定两个文件是否具有相同的内容
 *如果他们不是相同的文件。
 * /
公共 类 FilesDemo
{
   public  static  void  main(final  String [] arguments)抛出 异常
   {
      if(参数。长度 <  2)
      {
         出。println(“USAGE:FilesDemo <file1Name> <file2Name>”);
         回归 ;
      }

      final  String  file1Name  =  arguments [ 0 ];
      final  path  file1Path  =  Path。of(file1Name);
      final  String  file2Name  =  arguments [ 1 ];
      final  path  file2Path  =  Path。of(file2Name);

      出。println(“\ nFiles'”  +  file1Name  +  “'和'”  +  file2Name  +  “'是”
         +(文件。isSameFile(file1Path,file2Path)? “的”:“不是”)
         +  “相同。\ n \ n”);
      出。println(“\ nFiles'”  +  file1Name  +  “'和'”  +  file2Name  +  “'是”
         +(文件。不匹配(file1Path,file2Path)==  - 1  ? “”“:”不是“)
         +  “相同的内容。\ n \ n”);
   }
}


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

文件关系 Files.isSameFile(Path,Path)Files.mismatch(Path,Path)

另外  Files.mismatch(Path,Path)一个步骤是完成JDK-6852033 [“输入/输出方法使常见的I / O任务变得容易”],并且更容易确定两个不同文件的文件何时仍然“相等”或者拥有相同的内容。


猜你喜欢

转载自blog.51cto.com/14009535/2320722
jdk