数日前、私は頭痛の種となる深刻な問題に遭遇しました。
すべてのJavaベースのツール(Eclipse、Maven、Android SDKローダー...)には、特定のファイルのダウンロードに問題があります。ダウンロードはランダムに停止します。
スーパーユーザーでの問題についてはすでに説明しましたが、誰も私の問題を解決することができませんでした。したがって、自分でいくつかのテストを実行し始め、この質問の最後にサンプルコードを作成しました。
興味深いのは、バッファサイズが問題に与える影響が小さいことです。バッファサイズを1024に減らすと、ほとんどの場合、ダウンロードは完了します。
このコードは私のWindowsシステムでのみ問題を引き起こしますか?
明確にするために:私はJavaでダウンロードプログラムを開発したくありません-したがって、サンプルコードを修正しても私は役に立ちません-コードは問題を実証するためだけのものです。
public static void main(String[] args) {
try {
URL url = new URL("http://mirror.netcologne.de/maven2/com/google/android/android/2.3.3/android-2.3.3.jar");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream in = conn.getInputStream();
byte[] buffer = new byte[10485760]; // 10MiB
long read = 0;
while (true) {
int bytes = in.read(buffer, 0, buffer.length);
if (bytes < 0)
break;
read += bytes;
System.out.println("Bytes read: " + read);
}
conn.disconnect();
System.out.println("Finished");
} catch (Exception e) {
e.printStackTrace();
}
}