JDK 12的Files.mismatch方法

JDK12引入了Files类的新方法Files.mismatch(Path,Path),用于比较两个文件的内容是否完全相同。此方法的引入简化了文件内容比较的过程,使其与Arrays.mismatch和Buffer.mismatch方法保持一致性。

 

JDK 12为Files类引入了一种新方法。该  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.mismatch和Buffer.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任务变得容易”],并且更容易确定两个不同文件的文件何时仍然“相等”或者拥有相同的内容。

 

warning: ignoring JAVA_HOME=C:\Program Files\Java\jdk-17; using ES_JAVA_HOME Aborting auto configuration because of config dir ownership mismatch. Config dir is owned by DESKTOP-QG4PI93\Admin but auto-configuration directory would be owned by BUILTIN\Administrators java.lang.RuntimeException: starting java failed with [1] output: [0.005s][error][logging] Error opening log file 'logs/gc.log': No such file or directory [0.005s][error][logging] Initialization of output 'file=logs/gc.log' using options 'filecount=32,filesize=64m' failed. error: Invalid -Xlog option '-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,level,pid,tags:filecount=32,filesize=64m', see error log for details. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. at org.elasticsearch.server.cli.JvmOption.flagsFinal(JvmOption.java:121) at org.elasticsearch.server.cli.JvmOption.findFinalOptions(JvmOption.java:88) at org.elasticsearch.server.cli.MachineDependentHeap.determineHeapSettings(MachineDependentHeap.java:56) at org.elasticsearch.server.cli.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:146) at org.elasticsearch.server.cli.JvmOptionsParser.determineJvmOptions(JvmOptionsParser.java:98) at org.elasticsearch.server.cli.ServerCli.startServer(ServerCli.java:268) at org.elasticsearch.server.cli.ServerCli.execute(ServerCli.java:111) at org.elasticsearch.common.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:55) at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:95) at org.elasticsearch.cli.Command.main(Command.java:52) at org.elasticsearch.launcher.CliToolLauncher.main(CliToolLauncher.java:65)
最新发布
09-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值