- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コンテンツダウンロード時のプログレス更新処理について)
Javaでコンテンツダウンロード時のプログレス更新処理
このQ&Aのポイント
- Java(Android)にてサーバーからコンテンツをダウンロード行う際に進捗具合をプログレスバーに表示させる処理を考えています。
- org.apache.http.HttpResponseのwriteTo(OutputStream)を使用してファイルに直接書き出しているが、書き込みの進捗を取得する方法がわからない。
- ファイルサイズはHttpResponse response = httpclient.execute(httppost);のgetContentLength()メソッドで取得できる。ネットワークプログラムに関する知識が不足しているため、助けを求めている。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
writeTo()を使わずに自分でInputStreamからデータを読んでOutputStreamへ書き込めば、読み込み/書き込み済みのサイズを計算できると思います。下のコードは試していません。 HttpEntity entity = httpResponse.getEntity(); long size = entity.getContentLength(); InputStream is = entity.getContent(); byte[] buf = new byte[1024]; long sum = 0; int n; while ((n = is.read(buf, 0, buf.length)) > 0) { sum += n; → このsumとsizeの値を使ってプログレスバーを表示 bufの内容をOutputStreamへ出力 }
お礼
回答ありがとうございます。 非常に簡単なことで申し訳ないです。 おかげさまで上手くできました。