• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コンテンツダウンロード時のプログレス更新処理について)

Javaでコンテンツダウンロード時のプログレス更新処理

このQ&Aのポイント
  • Java(Android)にてサーバーからコンテンツをダウンロード行う際に進捗具合をプログレスバーに表示させる処理を考えています。
  • org.apache.http.HttpResponseのwriteTo(OutputStream)を使用してファイルに直接書き出しているが、書き込みの進捗を取得する方法がわからない。
  • ファイルサイズはHttpResponse response = httpclient.execute(httppost);のgetContentLength()メソッドで取得できる。ネットワークプログラムに関する知識が不足しているため、助けを求めている。

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.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へ出力 }

masakazu_s
質問者

お礼

回答ありがとうございます。 非常に簡単なことで申し訳ないです。 おかげさまで上手くできました。

関連するQ&A