Java判断超大文件中图书种类类别

我是来献丑的,小练身手,大家看看就好,不要骂。。。

        这两天在做老师的项目,交给我的任务是将文档中所有的图书类别进行分类。老师是搞大数据的,平时用的最多的是MATLAB。给你们看下文本大致的样子。

这当然只是一部分。不要问文本有多大,反正我的渣电脑用技术本打开等待了一分多钟。如果你一个个找“TP”这些种类的话又麻烦又不能保证正确。所以偷懒,就用Java来帮忙啦。

package mathwork;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;
import java.util.Iterator;
public class CharFind {
	public static void readTxtFile(String filePath){
		try{
			String encoding="GBK";
			File file=new File(filePath);
			ArrayList suoyin=new ArrayList();
			if(file.isFile()&&file.exists()){
				InputStreamReader read=new InputStreamReader(
						new FileInputStream(file),encoding);
				BufferedReader bufferedReader=new BufferedReader(read);
				String lineTxt=null;
				while((lineTxt=bufferedReader.readLine())!=null){
					String a=new String(lineTxt);
					String b=a.substring(7);
					              //if(b=="TT"){break;}
					              //System.out.println(b);
					if(suoyin.contains(b)){
						continue;
					}else{
					suoyin.add(b);
					//System.out.println(b);
					}
				}
				Iterator it=suoyin.iterator();
				while(it.hasNext()){
					System.out.println(it.next());
				}
				read.close();
				}else{
				System.out.println("找不到文件");
			}
		}
		catch(Exception e){
			System.out.println("读取文件内容出错");
			e.printStackTrace();
			
		}
	}
	public static void main(String argv[]){
		String filePath="C:\\Users\\gzf\\Documents\\Tencent Files\\1350083386\\FileRecv\\成绩排名预测\\图书类别.txt";
		readTxtFile(filePath);
	}
}
对,以上就是完整代码了。来解释一下:

  1. 首先获得一个文件句柄。File file = new File(); file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。

  2. 通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了。接下来需要解读成乙方可以理解的东西

  3. 既然你使用了FileInputStream()。那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据

  4. 解读完成后要输出呀。那当然要转换成IO可以识别的数据呀。那就需要调用字节码读取的方法BufferedReader()。同时使用bufferedReader()的readline()方法读取txt文件中的每一行数据哈。

注意,上面四条是copy别人的!(http://www.cnblogs.com/manongxiaojiang/archive/2012/10/13/2722068.html)(码农小江)我是参考了他的说法。将文档读出,然后利用容器的contains方法来去除重复,得出所有的种类。

       终于第一次感受到了代码的力量。代码真的可以三两拨千金。码农怎么了,真正改变世界的是码农!谢谢你看到这,加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值