Java合并两个文件,Set去重。

package com.joyhoo.words;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class HashSetInFile
{
 

 //simpleFile、insertFile为两个输入文件,outFile为输出文件
 public void readFile(String simpleFile,String insertFile,String outFile)
 {
  Set set = new HashSet();
  
  try
  {
   String line="";
 
   FileInputStream fisf = new FileInputStream(simpleFile);
   InputStreamReader isrf = new InputStreamReader(fisf, "UTF8");
   BufferedReader br =new BufferedReader(isrf);
   
   while((line=br.readLine())!=null ){

    if(!line.contains(" "))
     set.add(line);
   }
   br.close();
   System.out.println(set.size());
   
   FileInputStream fis = new FileInputStream(insertFile);
   InputStreamReader isr = new InputStreamReader(fis, "UTF8");
   BufferedReader inbr=new BufferedReader(isr);

   String temp = "";
   while((temp = inbr.readLine()) != null){
    if(!set.contains(temp) ){
     set.add(temp);
    }
   }
   inbr.close();
   
   FileOutputStream fos = new FileOutputStream(outFile);
   BufferedWriter out = new BufferedWriter(new OutputStreamWriter(fos,"UTF8")); 
   Iterator it = set.iterator();
   
   while(it.hasNext()){
    
    String element = (String)it.next();

    out.write(element);
    out.newLine();
    
   }
   out.close();
   
  }catch(Exception e){
   System.out.println("readFile errors:" + e.getMessage());
  }

 }
 
 public static void main(String[] args)
 {
  HashSetInFile hf = new HashSetInFile();

  String simple = "D://tmp//simplexu8.txt";

  String insert = "D://tmp//sogou.txt";
  
  String outfile = "D://tmp//simplexu81.txt";
  
  hf.readFile(simple, insert, outfile);
 }

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值