`
newchq
  • 浏览: 53651 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

比较程序,方便两个文件进行比较

阅读更多
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class MD5andKL {

	public static List<String> readText(String fileName) {
		File file = new File(fileName);
		List<String> listResult = new ArrayList();
		try {

			Set<String> set = new HashSet<String>();
			if (file.exists()) {
				FileReader fr = new FileReader(file);
				BufferedReader br = new BufferedReader(fr);
				String line = "";
				while ((line = br.readLine()) != null) {
					set.add(line.trim());
				}
				br.close();
				fr.close();
			}
			for (String ss : set) {
				listResult.add(ss);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return listResult;
	}
	
	public static void writeText(String fileName,List<String> list) {
		File file = new File(fileName);
		if(null == list || list.size()==0){
			return ;
		}
		if (file.exists()) {
			file.delete();	
		} else{
			try {
				file.createNewFile();
				FileWriter fw = new FileWriter(file);
				for(String str :list ){
					fw.write(str+"\n");
				}
				fw.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	public static List checkList(List<String> list1, List<String> list2) {
		List listResult = new ArrayList();
		Set<String> set = new HashSet<String>();
		for (String ss : list1) {
			if (!list2.contains(ss)) {
				set.add(ss);
			}
		}
		for (String ss : list2) {
			if (!list1.contains(ss)) {
				set.add(ss);
			}
		}
		for (String ss : set) {
			listResult.add(ss);
		}
		return listResult;
	}
	
	public static void checkByFileName(String name1,String name2,String name3){
		String fileName1 = "d:/"+name1+".txt";
		String fileName2 = "d:/"+name2+".txt";
		String fileName3 = "d:/"+name3+".txt";
		List<String> list = checkList(readText(fileName1), readText(fileName2));
		writeText(fileName3, list);
	}

	public static void main(String[] args) {
		checkByFileName("1", "2", "3");
	}

}
分享到:
评论

相关推荐

    EXE合并器-用于合并两个EXE文件

    EXE合并器-用于合并两个EXE文件 方便两个程序一起启动!

    可视化的二进制文件比较编辑工具,hexcmp

    是一个可视化的二进制文件比较编辑工具,程序可以帮助你快速的轻松的比较两个文件,并可以对你进行编辑操作,程序还拥有强大的搜索功能,可以执行基于十六进制或者字符的搜索操作! 使用方法:打开程序, 选择 Options/...

    vfp程序与程序文件.doc

    例1:任意输入两个数字,运行后可以形成两个数字的位置互换。 Clear Input"请输入一个数:"to a Input"请输入一个数:"to a ?a && 该结果显示的是未换位前的从键盘输入的数据 ?b && 同上 c=a && C是任意指定的内存...

    基于Hash表的代码相似度度量

    对于两个C++程序,设计并实现两种不同的基于Hash表的检测算法(开地址法和链地址法),计算两个程序的相似度,并分析比较两种算法的效率。 分别读取两个C++程序文件(p1.cpp, p2.cpp),自行设计哈希函数,分别利用...

    合并两个HEX文件

    将bootloader和APP的HEX文件合并成一个HEX文件,但在这之前要设置好他们的起始地址,合并后就可以更加简洁方便的更新您所需要的APP程序了。

    同一个bat文件启动多个jar包

    同一个bat文件启动多个jar包,便于用户进行傻瓜式启动程序,方便操作。

    文件共享 P2P程序 for Linux

    1. 实现局域网内两个主机之间文件的发送 2,节点的发现(即发现局域网的其他主机的IP) 3,以P2P的方式(平等的)建立连接。(可以接受连接请求和主动连接) 在Linux系统下编写C的程序是比较简单方便的

    生成java可执行文件

    本文主要告诉大家如何实现两个功能:①让java程序(class文件)像exe文件一样方便运行;②让java程序在没有安装java运行环境的计算机上运行。本人曾经被这两个问题困扰良久,网上也有将java程序打包成可执行jar包...

    输出文件夹中文件信息到excel文件中用于代替dirs-dirs2xls.m

    输出文件夹中文件信息到excel文件中用于代替dirs-dirs2xls.m 有时需要统计一个文件夹中文件的信息,过去常用dir/s,然后重定向到一个...包含两个文件,dirs2xls.m是主程序,dirs_info.m是一个包含递归调用的函数。

    WinMerge文件比较/合并工具

    WinMerge是一款运行于Windows系统下的免费开源的文件比较/合并工具,使用它可以非常方便地比较多个文档内容甚至是文件夹与文件夹之间的文件差异。适合程序员或者经常需要撰写文稿的朋友使用。 当您有两个以上的内容...

    诺基亚手机短信文件处理程序(含源代码)

    运行后生成汇总文件和重命名文件两个文件。xp和windows7,x86/x64上均可运行。有什么使用上的问题或建议欢迎反馈给我。 欢迎大家在这个代码的基础上修改以适合其他类型的手机短信文件。 遵循GNU/GPL协议发布。简单的...

    输出文件夹中文件信息到excel文件中用于代替dirs-dirs_info.m

    输出文件夹中文件信息到excel文件中用于代替dirs-dirs_info.m 有时需要统计一个文件夹中文件的信息,过去常用dir/s,然后重定向到一个...包含两个文件,dirs2xls.m是主程序,dirs_info.m是一个包含递归调用的函数。

    通讯录JAVA程序设计实验报告

    程序使用了ObjectInPutStream和ObjectOutPutStream这两个文件输入输出流,利用这两个文件输入输出流,可以方便的直接将通讯记录对象直接写入文件中,另外为了方便添加和删除一条记录还使用了系统的对象数组类...

    BIN文件 合并 单片机 IAP 合并BOOT APP C++源码 VS2015工程

    本软件用于单片机 IAP场合,将两个BIN文件合并成一个BIN文件,可以打开两个BIN文件,一个是BOOT,一个是APP ,软件将两个BIN合并成一个BIN文件,方便一次性的将两个BIN文件烧写进单片机,而不必烧写两次。...

    文本文件是怎样转换为EXE文件的

     此程序运行时需要携带两个或三个参数, 段如程序名为TXT2EXE.EXE,则命令格式:  TXT2EXE Source Target Title  如:txt2exe.exe a.txt a.exe hello    其中Source为原文本文件文件名, Target为转换后的目标...

    文件同步备份工具(实现差异、增量同步)

    文件同步备份可以在指定的两个文件夹之间进行单向或双向的同步,点击程序窗口右上方的绿色齿轮图标可以设置相关参数;期间也可以自定义需要筛选的文件,有“包括”和“例外”两种过滤方式,定义需要过滤的文件类型,...

    文件对比 Beyond Compare v4.2.9 (build 23626) for Win&Mac&Linux.txt

    Beyond Compare 是一套非常实用的文件及文件夹比较软件,不仅可以快速比较出两个文件夹的不同之处,还可以详细的比较文件之间的内容差异。程序内建了文件浏览器,方便您对文件、文件夹、压缩包、FTP网站之间的差异...

    基于spring boot和微信小程序的图书销售系统源代码(毕业论文+程序设计源码+数据库文件).zip

    安装教程 MySQL数据库,脚本文件在doc目录下 先启动后台shop项目,...包含后台管理端,和微信小程序用户端两个功能模块;开发语言基于Java同时使用spring boot作为后端开发框架后台管理端功能包含RBAC权限管理模块。

    TCP文件传输系统(Version 1.6 多线程,断点续传,支持大文件传输)

    采用Visual C++ 6.0开发的一个TCP文件传输系统,采用多线程的传输方式,支持断点续传,利用配置文件设置基本的初始化信息。 文件包括源代码和安装包,源代码里包括自定义的文件传输通信协议。 程序采用分层的设计...

    全能文件管理器Total Commander.zip

    文件操作更高效:资源管理器能做的它都能做,两个文件窗口的设计令文件操作更方便高效。 内置文件查看器:可快速查看任意大小多种类型的文件内容。借助插件,支持更多文件类型。 丰富的插件资源:插件极大地增强...

Global site tag (gtag.js) - Google Analytics