曾几何时我使用apache POI来提取rtf文件。我实际上是在使用TXTParser类,因为我可以使用rtf的原始输出(文本中的所有格式)根据格式进行各种文本提取wizadry。
然后有一天它开始输出空白字符串,我不明白为什么。
public class TextParser {
//@SuppressWarnings({ "rawtypes", "unchecked" })
public TextParser() {
// TODO Auto-generated constructor stub
}
public static void main(final String[] args) throws IOException,TikaException{
//detecting the file type
BodyContentHandler handler = new BodyContentHandler(-1);
Metadata metadata = new Metadata();
FileInputStream inputstream = new FileInputStream(new File("/Users/sebastianzeki/Documents/PhysJava/dance.rtf"));
ParseContext pcontext = new ParseContext();
//Text document parser
TXTParser TXTParser = new TXTParser();
try {
TXTParser.parse(inputstream, handler, metadata,pcontext);
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//Some tidying up
String s=handler.toString();
System.out.println(s);
我知道该文件没有任何问题,因为如果我使用另一个类(即RTFParser
),我会得到整个文件。
HtmlParser
将是一个替代方案,但只给我一半的文件返回。
任何人都可以提出另一种方法来获取rtf作为要求或修复这个奇怪的问题