1 回答

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
我的做法是錯(cuò)誤的。為了報(bào)告進(jìn)度,我沒有估計(jì)輸出字節(jié)和提取大小,而是計(jì)算了輸入流上的讀取字節(jié)數(shù)。
將輸入字符串包裝在CountingInputStreamAWS SDK 或 Apache Tika 提供的類中,并將讀取的字節(jié)與總內(nèi)容字節(jié)進(jìn)行匹配以獲得百分比。
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;
}
添加回答
舉報(bào)