
正文
java文件比较代码 java数据对比
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何将java文件内容进行比较
比较文件java文件比较代码的MD5即可
import java.io.File;
import java.io.FileInputStream;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.util.HashMap;
import java.util.Map;
public class FileDigest {
/**
* 获取单个文件java文件比较代码的MD5值java文件比较代码!
* @param file
* @return
*/
public static String getFileMD5(File file) {
if (!file.isFile()){
return null;
}
MessageDigest digest = null;
FileInputStream in=null;
byte buffer[] = new byte[1024];
int len;
try {
digest = MessageDigest.getInstance("MD5");
in = new FileInputStream(file);
while ((len = in.read(buffer, 0, 1024)) != -1) {
digest.update(buffer, 0, len);
}
in.close();
} catch (Exception e) {
e.printStackTrace();
return null;
}
BigInteger bigInt = new BigInteger(1, digest.digest());
return bigInt.toString(16);
}
/**
* 获取文件夹中文件的MD5值
* @param file
* @param listChild ;true递归子目录中的文件
* @return
*/
public static MapString, String getDirMD5(File file,boolean listChild) {
if(!file.isDirectory()){
return null;
}
//filepath,md5
MapString, String map=new HashMapString, String();
String md5;
File files[]=file.listFiles();
for(int i=0;ifiles.length;i++){
File f=files[i];
if(f.isDirectory()listChild){
map.putAll(getDirMD5(f, listChild));
} else {
md5=getFileMD5(f);
if(md5!=null){
map.put(f.getPath(), md5);
}
}
}
return map;
}
public static void main(String[] args) {
File file1 = new File("a.txt");
File file2 = new File("b.txt");
System.out.println(getFileMD5(file1).equals(getFileMD5(file2)));
}
}
相关问答
Q1: git eclipse 怎么对比代码差异
右键点击java文件比较代码你要对比java文件比较代码的JAVA文件java文件比较代码,依次选择Compare With---Head Revirsion
然后出现对比页面java文件比较代码,左边是本地文件java文件比较代码,右边是远程服务器文件
Q2: java如何快速比较两个文件是否相同
计算MD5或SHA-1java文件比较代码,一样java文件比较代码的就是同一个文件
下面的代码java文件比较代码,不需要额外使用第三方组件,且支持超大文件
// 计算文件的 MD5 值
publicstatic String getFileMD5(File file) {
if (!file.isFile()) {
return null;
}
MessageDigest digest = null;
FileInputStream in = null;
byte buffer[] = newbyte[8192];
int len;
try {
digest =MessageDigest.getInstance("MD5");
in = new FileInputStream(file);
while ((len = in.read(buffer)) != -1) {
digest.update(buffer, 0, len);
}
BigInteger bigInt = new BigInteger(1, digest.digest());
return bigInt.toString(16);
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
try {
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
// 计算文件的 SHA-1 值
publicstatic String getFileSha1(File file) {
if (!file.isFile()) {
return null;
}
MessageDigest digest = null;
FileInputStream in = null;
byte buffer[] = newbyte[8192];
int len;
try {
digest =MessageDigest.getInstance("SHA-1");
in = new FileInputStream(file);
while ((len = in.read(buffer)) != -1) {
digest.update(buffer, 0, len);
}
BigInteger bigInt = new BigInteger(1, digest.digest());
return bigInt.toString(16);
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
try {
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Q3: java分别读取两个txt文件里的数据再进行比较。再分别列出这两个文件中共有的和分别独有的数据。
ID后面是以个推文还是多个推文?
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class FileCompare {
public static void main(String[] args) throws IOException {
FileCompare c = new FileCompare();
c.compareFile();
}
public void compareFile(){
File file = new File("D:\\1.txt");
File file2 = new File("D:\\2.txt");
Set fileTextSet = new HashSet();
Set file2TextSet = new HashSet();
try {
getText(file,fileTextSet);
getText(file2,file2TextSet);
compareSet(fileTextSet, file2TextSet);
} catch (Exception e) {
e.printStackTrace();
}
}
private void compareSet(Set textSet,Set StextSet2){
for (Iterator iterator = textSet.iterator(); iterator.hasNext();) {
String name = (String) iterator.next();
if(StextSet2.contains(name)){
System.out.println("共同报文:"+name);
}else{
System.out.println("1独有报文:"+name);
}
}
for (Iterator iterator = StextSet2.iterator(); iterator.hasNext();) {
String name = (String) iterator.next();
if(!textSet.contains(name)){
System.out.println("2独有报文:"+name);
}
}
}
private void getText(File file,Set textSet) throws IOException {
BufferedReader br = null;
InputStream is = null;
try {
is = new FileInputStream(file);
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String lineStr = null;
while ((lineStr = br.readLine())!=null) {
String text = lineStr.substring(lineStr.indexOf(":"));//按照需求切分
textSet.add(text);
}
if(br!=null){
br.close();
}
if(is!=null){
is.close();
}
}catch (UnsupportedEncodingException e) {
e.printStackTrace();
}catch (FileNotFoundException e) {
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
} finally {
if(br!=null){
br.close();
}
if(is!=null){
is.close();
}
}
}
}
Q4: 用Java写一个类,用来比较两个文件夹中的文件:
给你个思路(自己仔细做做java文件比较代码,其实不难)java文件比较代码:
1、查找两个文件中所有的文件很简单,使用两个map,把文件名加上文件大小作为键,把文件所在的路径加上A或者B作为值,这样能够得到连个map,解决问题一
2、重新定义一个map,将B文件生成的map添加进新的map,然后将A文件生成的map添加进新map(新添加的时候判断map的健是不是已经存在,如果存在,将该键的值改成A文件的路径)
3、遍历新生成的map,如果map元素键对应的value中包含java文件比较代码了B而没有包含A 就说明,这个文件在B文件夹中,而没有在A文件夹中(可以使用contains这个方法)
Q5: git eclipse怎么对比代码差异?
1.右键单击你要对比的JAVA文件。
2依次选择Compare With--------Head Revirsion。
3.出现对比页面,左边是本地文件,右边是远程服务器文件。
java文件比较代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java数据对比、java文件比较代码的信息别忘了在本站进行查找喔。






