我是来献丑的,小练身手,大家看看就好,不要骂。。。
这两天在做老师的项目,交给我的任务是将文档中所有的图书类别进行分类。老师是搞大数据的,平时用的最多的是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);
}
}
首先获得一个文件句柄。File file = new File(); file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。
通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了。接下来需要解读成乙方可以理解的东西
既然你使用了FileInputStream()。那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据
解读完成后要输出呀。那当然要转换成IO可以识别的数据呀。那就需要调用字节码读取的方法BufferedReader()。同时使用bufferedReader()的readline()方法读取txt文件中的每一行数据哈。
终于第一次感受到了代码的力量。代码真的可以三两拨千金。码农怎么了,真正改变世界的是码农!谢谢你看到这,加油!