ft。居然设置了只能连续回复三次,所以只好结贴发个新帖了,请斑竹多担待,java菜鸟。
上次的帖子中,简单的说了下功能:就是调用opennlp工具包,对文件下的所有文件(摘要文件)进行分句,并输出到新建的文件夹下,新建文件下的文件,文件名为原文件,
简单的代码如下:import java.io.*;import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileReader;import opennlp.tools.chunker.ChunkerME;
import opennlp.tools.dictionary.Dictionary;
import opennlp.tools.lang.english.PosTagger;
import opennlp.tools.lang.english.SentenceDetector;
import opennlp.tools.lang.english.Tokenizer;
import opennlp.tools.lang.english.TreebankChunker;
import opennlp.tools.lang.english.TreebankParser;
import opennlp.tools.parser.Parse;
import opennlp.tools.parser.Parser;
import opennlp.tools.postag.POSTaggerME;
import opennlp.tools.sentdetect.SentenceDetectorME;
import opennlp.tools.tokenize.TokenizerME;
import opennlp.tools.util.InvalidFormatException;
public class FileProcess {

         //声明部分
private SentenceDetectorME sdetector;
private TokenizerME tokenizer;
private POSTaggerME posTagger;
private ChunkerME chunker;
private Parser parser;

public FileProcess()
{
              构造函数体 }


//分句
public String[] getSentence(String para)
{
String[] sents = sdetector.sentDetect(para);
return sents;
}

//将文件读取成一个字符串
public String readFileToString(String filename)
{
String result = "";
try {
BufferedReader fread = new BufferedReader(new FileReader(filename));
String line = fread.readLine();
while(line!=null)
{
result+=line+" ";
line=fread.readLine();
}
fread.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}


//创建单个文件 public static boolean CreateFile(String destFileName) {
         创建文件

}
// 创建目录 public static boolean createDir(String destDirName) {
         创建目录 }



public static void main(String[] argements) throws FileNotFoundException, IOException{

FileProcess FP=new FileProcess();
String tempstream=null;
String[] tempsentence=null;
String DirName="D:\\SenFile";
    BufferedWriter outputFile=null;
FP.createDir(DirName);

try 
{
     File file = new File("D:\\interactions");
     if (!file.isDirectory()) 
     {
       System.out.println("It is not an directory!");
     }
     else if (file.isDirectory()) 
     {
       String[] filelist = file.list();
       for (int i = 0; i < filelist.length; i++) 
       {
       //读入一个文件,调用getSentence函数获得分句 
       tempstream=FP.readFileToString("D:\\interactions\\"+filelist[i]);
       tempsentence=FP.getSentence(tempstream); //函数返回值为null,怀疑这里不能进行赋值,
      
       //根据所读入文件名,创建所对应的结果文件
       String DirFileName=DirName+"\\"+filelist[i];
       FP.CreateFile(DirFileName);
       
       
       //将分句结果读入到结果文件中
  try
  {
   outputFile=new BufferedWriter(new FileWriter(DirFileName));     
  }
  catch(FileNotFoundException e)
  {
  System.out.println("Error opening the file!");
  }
   
  for(int j=0;j<tempsentence.length;i++)
  {
  outputFile.write(tempsentence[i]);
  outputFile.newLine();    
  }
                             
       }      }    }
   catch (Exception e) {
     System.out.println("readfile()   Exception:" + e.getMessage());
   }      
   outputFile.close(); 
   
}
}程序debug时,        
tempstream=FP.readFileToString("D:\\interactions\\"+filelist[i]);应该是读入了文件
tempsentence=FP.getSentence(tempstream);但是函数返回为null值,
同时抛出异常,System.out.println("readfile()   Exception:" + e.getMessage());请高手指点,感激:)