源码]java合并两个文件,hashtable去重。
来源:互联网 发布:淘宝问答入口 编辑:程序博客网 时间:2024/05/15 10:36
合并两个文件,使用hashtable去掉文件里每行重复的字符。
test.txt
中华
人民
共和国
万岁
insert.txt
伟大
的
毛主席
中华
人民
共和国
上述两个文件放到程序对应路径,D:/tmp。
IntegrateFile.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Enumeration;
import java.util.Hashtable;
public class IntegrateFile {
/**
* 读取文件,存入数组,以行为单位.
* @param filename 文件路径
* @param splitStr 间隔符
* @return
*/
public String[] readFile(String filename,String splitStr)
{
String outputStr = "";
String[] words = null;
Hashtable ht = new Hashtable();
try
{
FileReader file = new FileReader(filename);
BufferedReader br=new BufferedReader(file);
String line="";
int i = 0;
//System.out.println("begin");
while((line=br.readLine())!=null ){
//System.out.println("line:" + line);
outputStr += line + splitStr;
}
words = getStringArray(outputStr,splitStr);
//System.out.println("end");
br.close();
}catch(Exception e){
System.out.println("readFile errors:" + e.getMessage());
}
return words;
}
/**
* hash存储,合并两个输入文件,写出新文件
* @param simplefile 输入文件一
* @param insertfile 输入文件二
* @param outfile 输出文件
* @param splitStr 数组判断间隔符
*/
public void hashStore(String simplefile,String insertfile,String outfile,String splitStr){
Hashtable ht = new Hashtable();
String[] simplewords = null;
String[] sogouwords = null;
simplewords = readFile(simplefile,splitStr);
System.out.println("simple len:" + simplewords.length);
sogouwords = readFile(insertfile,splitStr);
System.out.println("sogou len:" + sogouwords.length);
for(int i=0; i<simplewords.length;i++){
ht.put(simplewords[i], simplewords[i]);
}
for(int j=0; j<sogouwords.length; j++){
//去重
if(!ht.contains(sogouwords[j])){
ht.put(sogouwords[j], sogouwords[j]);
}
}
Enumeration enumeration = ht.elements();
try{
BufferedWriter out = new BufferedWriter(new FileWriter(outfile));
while (enumeration.hasMoreElements()) {
String element = (String) enumeration.nextElement();
out.write(element);
out.newLine();
System.out.println(element);
}
out.close();
}catch(Exception e){
System.out.println("hashStore errors:" + e.getMessage());
}
}
/**
* 字符串分隔成数组
* @param str 输入字符串
* @param splitStr 间隔符
* @return
*/
public String[] getStringArray(String str,String splitStr){
String[] words = str.split(splitStr);
return words;
}
/**
* test
* @param args
*/
public static void main(String[] args) {
//String filename = "D://tmp//simplexu8.txt";
String simple = "D://tmp//test.txt";
String insert = "D://tmp//insert.txt";
String outfile = "D://tmp//outtest.txt";
String splitStr = ",";
IntegrateFile up = new IntegrateFile();
up.hashStore(simple, insert,outfile, splitStr);
}
}
- 源码]java合并两个文件,hashtable去重。
- Java合并两个文件,Set去重。
- java 合并两个list 并去重
- java实现两个数组合并去重
- java读多个TXT文件、去重、合并
- 两个List合并去重
- Linux 文件合并去重
- linux文件合并去重
- linux文件合并、去重
- shell合并文件去重
- linux文件合并,去重
- 合并两个数组并去重
- 两个List合并去重,并排序
- Java List合并去重
- JAVA List<> 合并去重
- <转>linux文件合并,去重
- linux文件合并,去重,分割
- Linux文件合并,去重,分割
- 几个获取Windows系统信息的Delphi程序
- 创业者新手必读:曝光201个创业骗子项目
- 使用分布式缓存来群集Spring远程服务
- 在Spring中实现事务挂起
- 用Spring JMS使异步消息变得简单
- 源码]java合并两个文件,hashtable去重。
- Java合并两个文件,Set去重。
- SQL语句删除表中重复字段
- 【读书笔记】usOS-II——互斥型信号量(mutex)
- Java/JSP中文乱码问题解决
- 一个读取tga文件的类
- Tomcat性能调整
- 普通Java系统对同时在线人数的控制
- tomcat中的几点配置说明