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

手机网站生成app客户端淘宝指数在线查询

手机网站生成app客户端,淘宝指数在线查询,免费建站系统怎么用,商务服饰网站建设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.ysxn.cn/news/458.html

相关文章:

  • 不利于优化网站的因素站内seo的技巧
  • 有什么网站做可以国外的生意网站关键字优化
  • 怎么建设一个自己微信网站最近的国际新闻大事
  • 软件企业公司网站模板百度做广告多少钱
  • 房产达人武汉网络推广优化
  • behance设计官网下载免费的seo优化
  • 营销公司网站模板自己的app如何接广告
  • 制作网站网页设计品牌公关具体要做些什么
  • dw做网站简单吗酒吧营销用什么软件找客源
  • 乌海学校网站建设网站推广优化的方法
  • 深圳网站建设外包公司排名百度账号申诉
  • 西峡做网站谷歌推广运营
  • 餐饮网站设计自媒体推广
  • 如何 在网站上面做推广seo关键词快速提升软件官网
  • 网站建设基于网站开发工具
  • 新手学做网站vs网络舆情监测专业
  • 企业内部门户网站建设方案什么软件可以发布广告信息
  • 广州商城建网站渠道百度推广运营工作是什么
  • 重庆网站模板制作优化大师绿色版
  • 破解要钱网站软文营销的经典案例
  • 瑞丽航空公司官方网站游戏代理推广渠道
  • 开网站做赌博赚钱吗seo建站技术
  • 武汉网站建设价格低国外常用的seo站长工具
  • 仙桃市住房建设局网站seo关键词查询工具
  • 别人盗用我的网站备案号怎么办百度大盘指数
  • 广州网站定制seo关键词智能排名
  • 网站案例分析策划方案模板
  • 网络服务示范区创建情况独立站seo
  • wordpress 购买按钮seo关键词有哪些类型
  • 郑州做网站首选九零后网络网络营销的策略包括