java比较图片是否相同
//判断的办法是分别将两个文件读进来
//先判断着两个文件的长度,如果长度不一样,那肯定不一样
//如果两个文件的长度(大小)一样,那么就对文件中的每一个字节进行比对
//只要有一个字节不同,两个文件就不同。
//否则两个文件就是相同的
//代码如下:(JDK1.4+)(代码格式被吃掉了,请自己手工排一下)
package 兲髙亻壬鳥飛;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Answer1 {
public static void main(String[] args) {
//文件名要用绝对路径
//相对路径也可以,但是容易弄错
String fileName1 = "xxx";
//写你需要判断的第一个文件的文件名
String fileName2 = "yyy";
//写你需要判断的第二个文件的文件名
FileInputStream fis1 = null;
FileInputStream fis2 = null;
try {
fis1 = new FileInputStream(fileName1);
fis2 = new FileInputStream(fileName2);
int len1 = fis1.available();
int len2 = fis2.available();
if (len1 == len2) {
//长度相同,则比较具体内容
//建立两个字节缓冲区
byte[] data1 = new byte[len1];
byte[] data2 = new byte[len2];
//分别将两个文件的内容读入缓冲区
fis1.read(data1);
fis2.read(data2);
//依次比较文件中的每一个字节
for (int i=0; i<len1; i++) {
//只要有一个字节不同,两个文件就不一样
if (data1[i] != data2[i]) {
System.out.println("文件内容不一样"); return; }
} System.out.println("两个文件完全相同");
} else {
//长度不一样,文件肯定不同
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//关闭文件流,防止内存泄漏
if (fis1 != null) {
try {
fis1.close();
} catch (IOException e) {
//忽略
e.printStackTrace();
}
} if (fis2 != null) {
try {
fis2.close();
} catch (IOException e) {
//忽略
e.printStackTrace();
}
}
}
}
}
分享到:
相关推荐
本文将详细讲解如何在Java环境中使用PhantomJS将ECharts图表转化为图片。 首先,我们需要理解ECharts。ECharts是百度推出的一个基于JavaScript的数据可视化库,它提供了丰富的图表类型,如折线图、柱状图、饼图等,...
### Java将图片转换为byte数组及反向转换的知识点总结 #### 一、知识点概述 在Java编程中,经常需要处理图像数据,特别是在网络传输或存储时,将图像转换为`byte`数组是一种常见的做法。这不仅可以提高传输效率,...
以下是一个简单的Java图片压缩示例: ```java import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class ImageCompressor { public ...
在Java编程环境中,将图片序列转换为视频是一个常见的任务,特别是在多媒体处理或数据可视化领域。以下是一个关于如何使用Java实现这个功能的详细说明。 首先,我们需要一个库来处理视频编码,例如Xuggler或者...
在Java中进行图像识别,尤其是判断两张图片是否相似,是一个涉及计算机视觉和图像处理的复杂任务。本话题将深入探讨如何使用Java实现这一功能。在实际应用中,图像相似度判断广泛应用于图像检索、内容识别、人脸识别...
在Linux环境下,使用Java生成包含中文的图片时,经常遇到一个常见的问题——中文字符显示为乱码。这个问题的根源在于Linux系统默认的字体库中可能缺少支持中文的字体,因此在渲染中文字符时无法正确显示。针对这个...
- 考虑性能优化,如缓存生成的图片,避免频繁重复生成相同的图片。 6. **实战步骤** - 创建Struts2 Action类,定义接收HTML的字段和生成图片的方法。 - 实现HTML转图片的逻辑,包括解析HTML、渲染页面、添加背景...
在Java编程环境中,将本地图片转换为PDF格式是一项常见的任务,尤其在文档处理或报告生成时。这个过程涉及到了图像处理和PDF生成技术。本文将详细介绍如何使用Java实现这一功能,以及相关的技术知识点。 首先,我们...
在Java编程语言中,图片剪切是一项常见的任务,特别是在图像处理和图形用户界面的应用中。本文将深入探讨如何使用Java实现快速的图片剪切功能,以及相关的核心知识点。 首先,我们要明白图片剪切的基本概念。图片...
在Java编程语言中,图像处理是一项常见的任务,特别是在开发图形用户界面(GUI)或进行多媒体应用时。`Image`和`BufferedImage`是Java AWT(Abstract Window Toolkit)和Swing库中的两个重要类,它们分别用于处理...
- **图片处理**:PDF中的图片可能需要进行格式转换或压缩,以适应OFD的要求。 - **安全性**:OFD支持数字签名和权限管理,如果需要,需要将这些信息一并转换。 - **兼容性测试**:转换后的OFD文件应确保在各种OFD...
在Java中实现图片对比功能是一项涉及到图像处理的技术。这个功能的主要目的是在一张较大的图片(图A)中找出与另一张较小的图片(图B)完全匹配的区域。下面将详细介绍如何实现这一功能。 首先,我们需要对图片进行...
这将返回一个`byte[]`,与最初读取图片时的字节数组相同。 4. **将字节数组转换回图片**: 有了解码后的字节数组,我们再次使用`ImageIO.write`方法,将这些字节写入一个新的`BufferedImage`对象,然后可以保存或...
在Java编程领域,图片处理是一项常见的任务,包括添加水印和对图片进行加解密。以下将详细探讨这些知识点。 1. **图片加水印**: - **基本概念**:水印是一种在图片上添加不可见或可见的标记,用于证明所有权、...
在Java编程语言中,生成带有水印的图片是一项常见的任务,尤其在版权保护、品牌标识或者数据可视化等领域。本文将详细讲解如何利用Java实现这一功能,包括如何动态设置水印的文字大小、颜色以及水印的倾斜角度。 ...
本篇文章将详细探讨如何使用Java来实现Excel转HTML的功能。Java作为一种强大的编程语言,提供了多种库来处理这样的任务,其中一个常用的工具是Jacob库,它允许Java程序与Microsoft Office进行交互。 标题"java实现...
关键技术:"感知哈希算法"(Perceptual hash algorithm),它的作用是对每张图片生成一个"指纹"(fingerprint)字符串,然后比较不同图片的指纹。结果越接近,就说明图片越相似。
在这个例子中,创建一个与原始图片相同大小的新`BufferedImage`对象,类型为`TYPE_INT_RGB`,即24位真彩色。 6. **绘制缩放后的图像**:`tag.getGraphics().drawImage()`将缩放后的图像绘制到新创建的`...
总结起来,使用Java和OpenCV进行图片对比及差异标记涉及到图像读取、像素级比较、阈值处理、颜色标记等多个环节。通过理解这些基本概念和技术,你可以创建自己的图像比较工具,适用于各种场景,例如监控系统中的异常...
在Java编程环境中,将PDF文件转换为JPEG图片是一项常见的任务,尤其在数据处理或网页展示时。本项目提供了一个解决方案,通过遍历指定文件夹中的所有PDF文档,并将其转化为单张JPEG图片,同时保持原始PDF文件的命名...