gpt4 book ai didi

java - 从 InputStream .read 方法获取加载百分比

转载 作者:行者123 更新时间:2023-12-01 23:06:48 25 4
gpt4 key购买 nike

我在解析输入流并获取其数据的加载百分比时遇到问题。我的意思是,我的方法需要解析 InputStream,将其放入 StringBuffer,获取解析的总字节数并根据我的 StringBuffer 返回一个 String。

private String processPercent(InputStream content, HttpResponse response) throws IOException
{
InputStream in = content;
int totalBytes = Integer.parseInt(response.getFirstHeader("Content-Length").getValue());
int processedByte;
int loaded = 0;
StringBuffer sb = new StringBuffer();

while((processedByte = in.read()) != -1)
{

sb.append((char) processedByte);

if(this.asyncTask instanceof IProgressPercent)
{
lastProcessed = processedByte;
loaded += processedByte;
float percent = ((100*loaded) / totalBytes);
this.progressPercent = (int)percent;
this.asyncTask.doProgress(this.progressPercent);
}
}

in.close();

return new String(sb);
}

问题是当我显示百分比变量的值时,我得到的值高于 100,所以我认为这是一个计算问题。

有什么想法吗?谢谢。

最佳答案

替换

    loaded += processedByte;

++loaded;

实际上在if之前;增加 1。

关于java - 从 InputStream .read 方法获取加载百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22606276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com