1

如何使用 apache tika 1.2 解析.Pst 文件?
使用 ljcene 搜索时,如何获取电子邮件的整个正文、附件和所有元数据?

for (File file : docs.listFiles()) {
Metadata metadata = new Metadata();
ContentHandler handler = new BodyContentHandler();
ParseContext context = new ParseContext();
Parser parser = new AutoDetectParser();
InputStream stream = new FileInputStream(file);

try {
parser.parse(stream, handler, metadata, context);
}
catch (TikaException e) {
e.printStackTrace();
}
catch (SAXException e) {
e.printStackTrace();
}
4

1 回答 1

1

如果你坚持使用 1.2,你可以试试这里的推荐

如果您能够升级,我们添加了作为 1.7 中的 RecursiveParserWrapper ...如果可以的话,只需升级到 1.12,或者等待一两周,1.13 应该会发布。

通过命令行:

java -jar tika-app.jar -J -t -i input_directory -o output_directory

或在代码中:

    Parser p = new AutoDetectParser();
    RecursiveParserWrapper wrapper = new RecursiveParserWrapper(p,
            new BasicContentHandlerFactory(   
                   BasicContentHandlerFactory.HANDLER_TYPE.XML, -1));

    try (InputStream is = Files.newInputStream(file)) {
        wrapper.parse(is, new DefaultHandler(), new Metadata(), context);
    }
    int i = 0;
    for (Metadata metadata : wrapper.getMetadata()) {
        for (String name : metadata.names()) {
            for (String value : metadata.getValues(name)) {
                 System.out.println(i + " " + name +": " + value);
            }
        }
        i++;
    }
于 2016-05-02T12:56:58.473 回答