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

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");
	}

}

你可能感兴趣的:(java,Security)