加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java超快速文本去重复代码

发布时间:2020-12-14 23:24:11 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.io.*;import java.util.HashSet;import java.util.Iterator;import java.util.Set;public class SpeedClear {public static void main(St

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

import java.io.*;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class SpeedClear {

	public static void main(String[] args) {
		if(args.length==0){
			print();
			System.exit(1);
		}
		if(args.length!=2){
			System.out.println("Format error...");
			System.exit(1);
		}
		String pathname = args[0];
		String newPath = args[1];
		clear(pathname,newPath);     //调用去重复的方法...
	}

	/**
	 * 
	 * @param pathname
	 *            源文件路径
	 * @param newPath
	 *            新的文件路径
	 * @throws Exception
	 */
	public static void clear(String pathname,String newPath) {

		System.out.println("Start... ");
		
		try{	//懒的写Try..直接都包围起来吧....

			File file = new File(pathname);
		BufferedInputStream fis = new BufferedInputStream(new FileInputStream(file));
		
BufferedReader buffer = new BufferedReader(new InputStreamReader(fis,"utf-8"),20*1024*1024);// 用5M的缓冲读取文本文件 

			//FileWriter fw  = new FileWriter(new File(newPath),true);  //去除后的文本

			OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(new File(newPath)),"utf-8") ;

			Set<String> set = new HashSet<String>();
			String temp = ""; // 临时字符串
			int x = 0;
			while ((temp = buffer.readLine()) != null) { // 读文件,一行读一个
				set.add(temp); // 存储到Set集合里面
				if(x%30000==0){
					System.out.print("..") ;
				}
				x++;
			}
			fis.close();
			buffer.close();   //关闭读取操作
			
			//下面开始写文件
			
			for (String xxser : set) {
				out.write(xxser+"rn");
				
			}
			System.out.println("") ;
			out.close();   //关闭写操作
			System.out.println("size = " + set.size());
			System.out.println("End...");
		}catch(Exception e){
		
			System.out.println("文件太大了,建议先100MB大小..") ;
		}
		
		
	}


		public static void  print(){
		System.out.println("*************************************************");
		System.out.println("ttTo repeat tt");
		System.out.println();
		System.out.println("  format: java -Xmx1000m SpeedClear c:old.txt c:new.txttt");
		System.out.println();
		System.out.println("ttAuthor:xxser	QQ:616100108");
		System.out.println("*************************************************");
		
	}

}
 

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读