java文件比较_Java 比较两个任意文件是否相同
一、比较规则
先比较两个文件的长度,如果不一样则文件肯定不一样。
否则将文件读取出来,一个字节一个字节的比较二者内容是否相同。
import java.io.*;
public class FileCompare {
public static void main(String[] args) {
System.out.println("请依次输入两个文件的全路径和文件名:");
System.out.println("firstFile:");
String firstFile = inputFileName();
System.out.println("secondFile:");
String secondFile = inputFileName();
System.out.println("Start to compare ...");
FileCompare fileCompare = new FileCompare();
fileCompare.compareFile(firstFile, secondFile);
}
private void compareFile(String firFile, String secFile) {
try {
BufferedInputStream fir = new BufferedInputStream(new FileInputStream(firFile));
BufferedInputStream sec = new BufferedInputStream(new FileInputStream(secFile));
//比较文件的长度是否一样
if (fir.available() == sec.available()) {
while (fir.read() != -1 && sec.read() != -1) {
if (fir.read() != sec.read()) {
System.out.println("Files not same!");
break;
}
}
System.out.println("two files are same!");
} else {
System.out.println("two files are different!");
}
fir.close();
sec.close();
return;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private static String inputFileName() {
BufferedReader buffRead = new BufferedReader(new InputStreamReader(System.in));
String fileName = null;
try {
fileName = buffRead.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return fileName;
}
}
二、File中的length()与IO中InputStream类中的available()
1️⃣File中的length()返回long,表示文件的大小。
2️⃣IO中InputStream类中的available()返回int。表示该inputstream在不被阻塞的情况下一次可以读取到的数据长度。
java文件比较_Java 比较两个任意文件是否相同相关推荐
- php任意文件删除漏洞,myblog/phpyun4.3任意文件删除漏洞.md at master · source-trace/myblog · GitHub...
phpyun-expect.class.php任意文件 漏洞信息 公开时间: 2017/08 影响版本: 4.3 利用难度: 2 挖掘难度: 2 漏洞说明 漏洞出现的原因是在于没有对数据进行很好的校验 ...
- java 音频对比_java – 比较两个不同的音频文件不起作用
我想比较两个音频文件,例如mp3和wav.我使用 musicg来比较指纹. Wave record1 = new Wave(music1.toString()); Wave record2 = new ...
- weblogic系列漏洞整理————8、WebLogic 两处任意文件上传漏洞动态分析(CVE-2018-2894)
0x01 前言 CNCERT前几天发公告称发现Oracle公司出品的基于JavaEE结构的中间件WebLogic产品存在一个远程上传漏洞,并得到了厂商的确认,危害程度评分高达9.8分.鉴于厂商已进行了 ...
- java 动态库_java调用dll动态库文件的一般总结
前一段时间,在项目需求中,需要调用一下第三方的动态库文件,下面是本人一些尝试的经历. 首先需要明白的是,在java中是不能直接调用动态库文件的,因为动态库文件是使用c或是c++编写的,作为一种跨 ...
- java语言怎样判断文件夹_JAVA语言之如何判断文件,判断文件夹是否存在的代码...
本文主要向大家介绍了JAVA语言之如何判断文件,判断文件夹是否存在的代码,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.判断文件是否存在,不存在则创建File file = ne ...
- java五子棋棋盘_Java实现两人五子棋游戏(二) 画出棋盘
此文为大家分享了java画出五子棋游戏棋盘的方法,供大家参考,具体内容如下 棋盘模块: 画五子棋棋盘:19条横线.19条竖线 步骤一:显示棋盘 我有一张名为chessboard.png的棋盘,位置为根 ...
- java md5 文件验证_Java 自带MD5 校验文件
转载声明:http://blog.csdn.net/zishan007/article/details/7971229 package com.chinasoft.corpinfosys.common ...
- 合并两个xml文件 php_怎样合并两个pdf文件
Pdf文件我们常常在办公中用到,有很多朋友在网上手机资料后不知道怎么把它加入到pdf文件中,有些朋友可能会想到复制粘贴,可是pdf文件是不能够直接进行编辑的,那么应该怎么才能把pdf文件合并在一起呢? ...
- php任意文件删除漏洞,phpyun二次任意文件删除漏洞
### 简要描述: 只要有任意文件删除 这系统绝对崩. 我吐个槽,最新的过滤文件实在是太BT了,只要有select and .... 就die() 伤不起啊 ### 详细说明: 问题出在 friend ...
最新文章
- linux发送email错误 501 Syntax: HELO hostname
- 备考12月份电子学会青少年编程能力等级测试(图形化)的公益训练营即将开营
- Spring 整合 Junit
- 存图matlab,matlab中保存图片的方法
- 多进程单线程模型与单进程多线程模型之争
- 开放科学背景下的科学数据开放共享:国家青藏高原科学数据中心的实践
- 爬虫登录获取cookie的难点
- ASP.NET MVC3 Action Filters详解(一)
- day4-软件目录开发规范
- python locust mqtt_Boomer 实战压测 mqtt,2w 并发轻松实现
- 【自监督】何凯明新作MAE略读
- Hibernate Validator 总结大全
- 蔡颖-《APS走向实践》书解读之三:供应、计划排程、供应链优化
- mysql发音_mysql应该怎么念?
- dalvik下替换so简单dump出梆梆加固保护的odex
- 使用exceljs导出部门-职位联动下拉框的excel
- 面阵相机该如何选型?
- 关于极客时间 | MySQL实战45讲的部分总结
- Git的标签:tag
- 闽南师范大学有计算机培训班吗,闽南师范大学计算机技术专业学位研究生招生简章...
热门文章
- 程序员 30 岁前,该如何规划自己的职业发展?
- MySQL Group Replication数据安全性保障
- 推荐一款接口文档在线管理系统-MinDoc
- mysql启动错误处理
- 《技术管理之巅》读书笔记
- 向服务器写入错误日志-log
- silverlight计时器
- 条件编译#define、#undef、#if、#elif、#elif defined、#elif !defined 、#endif用法
- Centos7.9安装Mysql5.7.32_mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar_亲测成功---Linux工作笔记041
- Netty工作笔记0015---MappedByteBuffer使用