当前位置: 首页 > news >正文

上传网站安装教程济南网络优化网址

上传网站安装教程,济南网络优化网址,单机游戏制作软件,网店代运营协议Java12引入了一个新的方法 mismatch,它属于java.nio.file.Files类。此方法用于比较两个文件的内容,并返回第一个不匹配字节的位置。如果两个文件完全相同,则返回-1。 Files.mismatch 方法声明 public static long mismatch(Path path1, Pat…

Java12引入了一个新的方法 mismatch,它属于java.nio.file.Files类。此方法用于比较两个文件的内容,并返回第一个不匹配字节的位置。如果两个文件完全相同,则返回-1

Files.mismatch 方法声明

public static long mismatch(Path path1, Path path2) throws IOException

参数说明:

  • path1: 第一个文件的路径。
  • path2: 第二个文件的路径。

返回值说明:

  • 返回两个文件之间第一个不匹配字节的位置。如果两个文件完全相同,则返回 -1
  • 如果一个文件是另一个文件的前缀,则返回较短文件的长度。

异常说明:

  • IOException: 如果发生I/O错误,抛出IOException异常,例如文件不存在。

Files.mismatch的使用

以下是一个使用Files.mismatch方法的示例代码:

package com.morris.java12;import java.io.FileWriter;
import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.file.Files;
import java.nio.file.Path;/*** 使用FileMismatch对文件进行比较*/
public class FileMismatchDemo {public static void main(String[] args) throws IOException {FileWriter a1 = new FileWriter("d:/a1.txt");a1.write("abc中国");a1.write("efg");a1.write("123");a1.close();FileWriter a2 = new FileWriter("d:/a2.txt");a2.write("abc中国"); // 中文占3个字节a2.write("efg");a2.write("124");a2.close();long ap = Files.mismatch(Path.of("d:/a1.txt"), Path.of("d:/a2.txt"));System.out.println("a1 and a2 mismatch: " + ap); // 14FileWriter b1 = new FileWriter("d:/b1.txt");b1.write("abc");b1.close();FileWriter b2 = new FileWriter("d:/b2.txt");b2.write("abc");b2.close();long bp = Files.mismatch(Path.of("d:/b1.txt"), Path.of("d:/b2.txt"));System.out.println("b1 and b2 mismatch: " + bp); // -1}
}

运行结果如下:

a1 and a2 mismatch: 14
b1 and b2 mismatch: -1

如果文件内容相同,mismatch方法将返回-1

如果文件内容不同,mismatch方法将返回第一个不匹配字节的位置。

如果文件长度不同,如果一个文件是另一个文件的前缀,mismatch方法将返回较短文件的长度。

这个新方法对文件比较非常有用,可以大大简化需要逐字节比较文件内容的代码。

Files.mismatch的源码分析

public static long mismatch(Path path, Path path2) throws IOException {if (isSameFile(path, path2)) {return -1;}byte[] buffer1 = new byte[BUFFER_SIZE];byte[] buffer2 = new byte[BUFFER_SIZE];try (InputStream in1 = Files.newInputStream(path);InputStream in2 = Files.newInputStream(path2)) {long totalRead = 0;while (true) {int nRead1 = in1.readNBytes(buffer1, 0, BUFFER_SIZE);int nRead2 = in2.readNBytes(buffer2, 0, BUFFER_SIZE);int i = Arrays.mismatch(buffer1, 0, nRead1, buffer2, 0, nRead2);if (i > -1) {return totalRead + i;}if (nRead1 < BUFFER_SIZE) {// we've reached the end of the files, but found no mismatchreturn -1;}totalRead += nRead1;}}
}

底层使用了Arrays.mismatch()比较两个文件的字节数组。

http://www.yayakq.cn/news/325017/

相关文章:

  • 做什么网站好西宁市营销网站建设公司
  • 网站实名认证 备案项目管理过程五个阶段
  • 关于平面设计的网站做网站需要多少钱
  • 桐乡市建设局网站大通酩悦图片制作视频
  • 建设课程网站的目的个人网站备案电话访谈
  • 检测网站是否被做跳转由wordpress强力驱动
  • 设备网站建设网页设计制作公司做什么
  • 使用oss图片做网站网页设计与制作课程建设规划方案
  • 没有收款接口网站怎么做收款集团做网站需要多大的带宽
  • 金湖县建设工程质量监督网站哈尔滨网站建设一薇ls15227
  • 用别人的公司名字做网站小型建筑公司有哪些
  • 深圳网站建设高端付费看wordpress
  • asp全静态企业网站网络工程师证书考取条件
  • 如何做类似于淘宝的网站咖啡网站建设设计规划书
  • 电商网站建设论文眼科医院网站设计怎么做6
  • 北京装修公司网站建设网站建设内页
  • 网站能实现什么功能天猫网站设计特点
  • 网站怎么制作小程序wordpress 微信 登陆
  • 滨海新区建设和交通局网站运营和营销有什么区别
  • 商务网站建设的应用关于电器网站建设的法律
  • 关于学院网站建设的意见合肥建设银行网站首页
  • 在线做简单的网站吗浙江网报通用招聘平台
  • 深圳 网站开发普通个人简历
  • 北京网站制作网络推广公司wordpress 数据转换
  • 自己可以做类似拓者的网站吗做网站需要公司么
  • 怎么进行网站推广网页制作培训费用多少
  • flash网站轮播广告怎么做纯净软件网站推荐
  • 官方网站建设优化wordpress的特点
  • 黄岩建设局网站网站服务器租用阿里云一年多少钱啊
  • 深圳外贸网站沈阳旅游团购网站建设