亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Apache Tika 進行進度報告?

使用 Apache Tika 進行進度報告?

梵蒂岡之花 2023-10-12 09:47:10
我使用 Apache Tika 和 Java 從 PDF 和 Zip 文件中提取文本?,F在,在處理大文件時,我想向我的應用程序添加進度報告。為此,我需要估計提取大小來計算完成的百分比(通過將其與寫入輸出的字節數進行匹配)。我進行了很多搜索,但在任何地方都找不到與此相關的任何內容。apache tika 是否提供任何類型的進度報告?有什么解決方法嗎?編輯:我正在使用來自組的apache tikatika-parsers的java 庫。并通過Java直接調用它們,代碼如下。tika-serverorg.apache.tikaAutoDetectParser parser = new AutoDetectParser();ParseContext context = getParseContext(extractionPolicy, parser);Metadata metadata = new Metadata();parser.parse(inputStream, handler, metadata, context);return metadata;
查看完整描述

1 回答

?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

我的做法是錯誤的。為了報告進度,我沒有估計輸出字節和提取大小,而是計算了輸入流上的讀取字節數。


將輸入字符串包裝在CountingInputStreamAWS SDK 或 Apache Tika 提供的類中,并將讀取的字節與總內容字節進行匹配以獲得百分比。


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;

}


查看完整回答
反對 回復 2023-10-12
  • 1 回答
  • 0 關注
  • 91 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號