import cn.hutool.core.date.DateUtil; import exceptions.FileAnalyseException; import exceptions.NotExistFileException; import utils.CalculationUtils; import utils.CommonUtils; import java.util.Map; public class Main { //合法参数个数为3 static final int ARGS_NUM = 3; public static void main(String[] args){ // 读取并解析参数 if (args.length != ARGS_NUM) { throw new IllegalArgumentException("参数个数不正确"); } // 解析文件,处理分词 Map originWordCount = null; Map compareWordCount = null; try { //得到原文本的关键词和词频 originWordCount = CommonUtils.analyseText(CommonUtils.readFileToStr(args[0])); //以及比对文本的关键词的关键词和词频 compareWordCount = CommonUtils.analyseText(CommonUtils.readFileToStr(args[1])); } catch (FileAnalyseException | NotExistFileException e) { e.printStackTrace(); } // 获取simHash值 String simHash1 = CalculationUtils.calculateSimHash(originWordCount); String simHash2 = CalculationUtils.calculateSimHash(compareWordCount); //计算相似度,保留两位小数 double result = CalculationUtils.getSimilarity(simHash1, simHash2); String format = String.format("相似度为:%.2f", result); System.out.println(format); String writeFileContent = "---------------------------------------" + "\n" + "原文件:" + args[0] + "\n" + "对比文件:" + args[1] + "\n" + format + "\n" + "比较时间为:" + DateUtil.now() + "\n"; ; CommonUtils.writeFile(args[2],writeFileContent); } }