如何将java文件内容进行比较
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将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
/**
* 获取单个文件的MD5值!
* @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 Map<String, String> getDirMD5(File file,boolean listChild)
if(!file.isDirectory())
return null;
//<filepath,md5>
Map<String, String> map=new HashMap<String, String>();
String md5;
File files[]=file.listFiles();
for(int i=0;i<files.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)));
参考技术A 进行反编译之后应该可以比较
Java如何重复排序直到在冒泡排序中没有进行交换?
【中文标题】Java如何重复排序直到在冒泡排序中没有进行交换?【英文标题】:Java How do i repeat sort until no swaps are done in bubblesort? 【发布时间】:2022-01-20 23:09:57 【问题描述】:我将选取 10 个元素并对它们进行冒泡排序。我想添加一个重复排序的算法,直到不需要交换以提高效率。 基本上我想:
重复直到没有完成一次交换 对于元素 1 到 (n-1) 将元素值 1 的内容与下一个值的内容进行比较 如果值 1 大于值 2 然后交换值这是我到目前为止所做的:
//create array
int[] iList = new int[10];
Scanner sc = new Scanner(System.in);
//takes in array input for 10 numbers
System.out.println("Enter a array of numbers ");
for(int i = 0; i< 10; i++ )
int num = i + 1;
System.out.println("Enter number " + num);
iList[i] = sc.nextInt();
//Bubble sorts the array
System.out.println("The array =");
for(int a = 0; a < iList.length; a++ )
for(int b = a+1; b < iList.length; b++)
if(iList[a] > iList[b])
int iTemp = iList[a];
iList[a] = iList[b];
iList[b] = iTemp;
System.out.println("Progress = " + Arrays.toString(iList) );
```
【问题讨论】:
创建一个bool
来存储它是否曾经在迭代中被交换过。 break
如果没有
在外循环的开头引入了一个boolean
变量,在if里面改变那个boolean
变量的值,检查这个变量在外循环结束前是否改变了。
【参考方案1】:
这是我的实现:
public static void sort(int[] nums)
boolean isSwapped;
int size = nums.length - 1;
for (int i = 0; i < size; i++)
isSwapped = false;
for (int j = 0; j < size - i; j++)
if (nums[j] > nums[j+1])
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
isSwapped = true;
if (!isSwapped) break;
System.out.println("Sorted Array: " + Arrays.toString(nums));
【讨论】:
以上是关于如何将java文件内容进行比较的主要内容,如果未能解决你的问题,请参考以下文章