文件操作是编程的基本操作,特别是在中文分词中,文件的操作更为重要.中文分词的断词阶段会涉及到这一点,要求能够读取语料库中的内容,并对每个词的词频进行标注.本文将根据这个要求,列出代码示例如何进行标注.
下面程序实现的主要功能是:创建一个目标空文件,将源文件的内容按行写入目标文件中,并按源文件的行次给目标文件的每一行顺序标号.代码如下:
import java.io.*;
public class LineNum {
public static void main(String args[])throws IOException{
File newDir=new File("d://java//test2");
File newFileR=new File(newDir,"lineR.txt");//创建源文件对象
File newFileW=new File(newDir,"lineW0.txt");//创建目标文件对象
newFileW.createNewFile();//创建目标文件
RandomAccessFile fileR=new RandomAccessFile(newFileR,"r");
RandomAccessFile fileW=new RandomAccessFile(newFileW,"rw");
//下面一段用来计算文件的总行数
BufferedReader reader = new BufferedReader (new java.io.FileReader (newFileR));
int k = 0;
String line = reader.readLine (); // 读入一行
while (line != null){
line = reader.readLine (); // 读入下一入
k=k+1;
}
System.out.println("该文件共有 "+k+" 行");
//将文件按行写入目标文件中,并对每行标号.
for(int i=1;i<=k;i++)
{
fileW.writeBytes("NUM:"+i+" "+fileR.readLine()+"/r/n");
};
//注意:由于程序是顺序执行的,所以用来记数的文件对象和用来输出的文件对象流必须不同.不过,其对象流均可采用RadomAccessFile类.
}
}