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

时间:2021-02-09 20:13:56

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

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

Java判断超大文件中图书种类类别这当然只是一部分。不要问文本有多大,反正我的渣电脑用技术本打开等待了一分多钟。如果你一个个找“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方法来去除重复,得出所有的种类。

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