JDK 12的Files.mismatch方法

Tybyq發表於2018-11-22

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任務變得容易”],並且更容易確定兩個不同檔案的檔案何時仍然“相等”或者擁有相同的內容。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31557424/viewspace-2221270/,如需轉載,請註明出處,否則將追究法律責任。

相關文章