首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与Apache Tika的进度报告?

与Apache Tika的进度报告?
EN

Stack Overflow用户
提问于 2019-10-09 14:37:16
回答 1查看 216关注 0票数 1

我使用Apache和Java从PDF和Zip文件中提取文本。现在在处理大型文件时,我希望将进度报告添加到我的应用程序中。为此,我需要估计提取大小来计算完成的百分比(通过将其与写入输出的字节数相匹配)。

我搜了很多遍,在任何地方都找不到任何与此相关的东西。

apache提供了任何进度报告吗?有什么解决办法吗?

编辑:我正在使用apache tika-parsers的java库,来自组org.apache.tikatika-server。并使用以下代码通过Java直接调用它们。

代码语言:javascript
复制
AutoDetectParser parser = new AutoDetectParser();
ParseContext context = getParseContext(extractionPolicy, parser);
Metadata metadata = new Metadata();
parser.parse(inputStream, handler, metadata, context);
return metadata;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-14 11:35:23

我走错路了。对于进度报告,我不是估计输出字节和提取大小,而是计算输入流上的读取字节。

将输入字符串包装在AWS或Apache提供的CountingInputStream类中,并将读取字节与总内容字节匹配以获得百分比。

代码语言:javascript
复制
CountingInputStream inputStream;
Long totalContentLength;

private int getProgressPercentage(){
    Long processedBytes = this.inputStream.getByteCount();
    if (0 < totalContentLength && processedBytes <= totalContentLength) {
        int percent = (int) ((processedBytes * 100.0 / totalContentLength));
        LOGGER.info("Processed bytes: {}, Total bytes: {}, Progress: {}%", processedBytes, totalContentLength, percent);
        return percent;
    }
    return 0;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58306621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档