第一种方式,写一个比较不同文件的一个功能:
其原理是,把A文件的内容转换成数组,然后B文件比较,有A文件的内容就剔除,剩下的就是不在A文件的内容了,然后将这些保存在diff.txt中。。。
package com.jd.finance.xjk.op.test;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
/**
* Created by wangxingjie on 2016/10/21.
*/
public class FileCompDiff {
public static void main(String[] strings) throws IOException {
File daifu=new File("E:\\test\\daifu.txt");
File xiaojink=new File("E:\\test\\小金库发奖.txt");
File diff=new File("E:\\test\\diff.txt");
BufferedReader fileInputStreamDaifu=null;
BufferedReader fileInputStreamXiaojink=null;
BufferedWriter out=null;
try {
fileInputStreamDaifu= new BufferedReader(new InputStreamReader(new FileInputStream(daifu),"utf-8"));
fileInputStreamXiaojink= new BufferedReader(new InputStreamReader(new FileInputStream(xiaojink),"utf-8"));
out= new BufferedWriter(new OutputStreamWriter(new FileOutputStream(diff),"utf-8"));
String line1=null;
String line2=null;
Map<String,String> mapRead=new HashMap<String, String>(35000);
while ((line1=fileInputStreamXiaojink.readLine())!=null){
String[] segments1 = line1.split("\t");
mapRead.put(segments1[0],line1+"\n");
}
while ((line2=fileInputStreamDaifu.readLine())!=null){
String[] segments2 = line2.split("\t");
if (null!=mapRead.get(segments2[0])){
mapRead.remove(segments2[0]);
}
}
System.out.println("匹配到的数据条数为 :"+mapRead.size());
for (String key :mapRead.keySet()){
out.write(mapRead.get(key));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
fileInputStreamDaifu.close();
fileInputStreamXiaojink.close();
out.close();
}
}
}
最后的文件diff.txt是比较不同的结果文件。
第二种方法是:利用方法=COUNTIF(B:B,A1)即可得到0或者1,0代表的是不同,在通过筛选得到不通的数据
见:http://jingyan.baidu.com/article/c843ea0b7a2a7477921e4a47.html