jdk12 jdk1.8_JDK 12的Files.mismatch方法
jdk12 jdk1.8
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");} }當針對各種文件組合執行上述代碼時,它將提供在下表中捕獲的結果。
| 同一文件 | 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
jdk12 jdk1.8
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的jdk12 jdk1.8_JDK 12的Files.mismatch方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (linux 安装tar)
- 下一篇: 域名怎么跟服务器绑定(域名绑定服务器)