一、比较规则

先比较两个文件的长度,如果不一样则文件肯定不一样。

否则将文件读取出来,一个字节一个字节的比较二者内容是否相同。

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 比较两个任意文件是否相同相关推荐

  1. php任意文件删除漏洞,myblog/phpyun4.3任意文件删除漏洞.md at master · source-trace/myblog · GitHub...

    phpyun-expect.class.php任意文件 漏洞信息 公开时间: 2017/08 影响版本: 4.3 利用难度: 2 挖掘难度: 2 漏洞说明 漏洞出现的原因是在于没有对数据进行很好的校验 ...

  2. java 音频对比_java – 比较两个不同的音频文件不起作用

    我想比较两个音频文件,例如mp3和wav.我使用 musicg来比较指纹. Wave record1 = new Wave(music1.toString()); Wave record2 = new ...

  3. weblogic系列漏洞整理————8、WebLogic 两处任意文件上传漏洞动态分析(CVE-2018-2894)

    0x01 前言 CNCERT前几天发公告称发现Oracle公司出品的基于JavaEE结构的中间件WebLogic产品存在一个远程上传漏洞,并得到了厂商的确认,危害程度评分高达9.8分.鉴于厂商已进行了 ...

  4. java 动态库_java调用dll动态库文件的一般总结

    前一段时间,在项目需求中,需要调用一下第三方的动态库文件,下面是本人一些尝试的经历. 首先需要明白的是,在java中是不能直接调用动态库文件的,因为动态库文件是使用c或是c++编写的,作为一种跨   ...

  5. java语言怎样判断文件夹_JAVA语言之如何判断文件,判断文件夹是否存在的代码...

    本文主要向大家介绍了JAVA语言之如何判断文件,判断文件夹是否存在的代码,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.判断文件是否存在,不存在则创建File file = ne ...

  6. java五子棋棋盘_Java实现两人五子棋游戏(二) 画出棋盘

    此文为大家分享了java画出五子棋游戏棋盘的方法,供大家参考,具体内容如下 棋盘模块: 画五子棋棋盘:19条横线.19条竖线 步骤一:显示棋盘 我有一张名为chessboard.png的棋盘,位置为根 ...

  7. java md5 文件验证_Java 自带MD5 校验文件

    转载声明:http://blog.csdn.net/zishan007/article/details/7971229 package com.chinasoft.corpinfosys.common ...

  8. 合并两个xml文件 php_怎样合并两个pdf文件

    Pdf文件我们常常在办公中用到,有很多朋友在网上手机资料后不知道怎么把它加入到pdf文件中,有些朋友可能会想到复制粘贴,可是pdf文件是不能够直接进行编辑的,那么应该怎么才能把pdf文件合并在一起呢? ...

  9. php任意文件删除漏洞,phpyun二次任意文件删除漏洞

    ### 简要描述: 只要有任意文件删除 这系统绝对崩. 我吐个槽,最新的过滤文件实在是太BT了,只要有select and .... 就die() 伤不起啊 ### 详细说明: 问题出在 friend ...

最新文章

  1. linux发送email错误 501 Syntax: HELO hostname
  2. 备考12月份电子学会青少年编程能力等级测试(图形化)的公益训练营即将开营
  3. Spring 整合 Junit
  4. 存图matlab,matlab中保存图片的方法
  5. 多进程单线程模型与单进程多线程模型之争
  6. 开放科学背景下的科学数据开放共享:国家青藏高原科学数据中心的实践
  7. 爬虫登录获取cookie的难点
  8. ASP.NET MVC3 Action Filters详解(一)
  9. day4-软件目录开发规范
  10. python locust mqtt_Boomer 实战压测 mqtt,2w 并发轻松实现
  11. 【自监督】何凯明新作MAE略读
  12. Hibernate Validator 总结大全
  13. 蔡颖-《APS走向实践》书解读之三:供应、计划排程、供应链优化
  14. mysql发音_mysql应该怎么念?
  15. dalvik下替换so简单dump出梆梆加固保护的odex
  16. 使用exceljs导出部门-职位联动下拉框的excel
  17. 面阵相机该如何选型?
  18. 关于极客时间 | MySQL实战45讲的部分总结
  19. Git的标签:tag
  20. 闽南师范大学有计算机培训班吗,闽南师范大学计算机技术专业学位研究生招生简章...

热门文章

  1. 程序员 30 岁前,该如何规划自己的职业发展?
  2. MySQL Group Replication数据安全性保障
  3. 推荐一款接口文档在线管理系统-MinDoc
  4. mysql启动错误处理
  5. 《技术管理之巅》读书笔记
  6. 向服务器写入错误日志-log
  7. silverlight计时器
  8. 条件编译#define、#undef、#if、#elif、#elif defined、#elif !defined 、#endif用法
  9. Centos7.9安装Mysql5.7.32_mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar_亲测成功---Linux工作笔记041
  10. Netty工作笔记0015---MappedByteBuffer使用