Web サーバーからファイルをダウンロードするアプリケーションを Java で作成しています。このファイルは 816kb の zip ファイルです。3 台の異なるコンピューターでアプリケーションをテストしましたが、1 台のコンピューターでは動作しません。その場合、ファイルの 13kb のみをダウンロードしてから停止します。htaccess ログを確認すると、次のように表示されます。
a: "GET /cache.zip HTTP/1.1" 200 816938 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_07"
b: "GET /cache.zip HTTP/1.1" 200 134320 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_09"
(PC a は動作し、PC b は動作していません)
Javaでファイルをダウンロードするためにさまざまな方法を試しましたが、すべての方法で13kbを超えるとダウンロードが停止します。また、512m メモリでアプリケーションを実行しようとしましたが、それは問題ではありません。
これは私が今持っているものです:
DataInputStream in = new DataInputStream(conn.getInputStream());
DataOutputStream out = new DataOutputStream(new FileOutputStream(new File(Config.CACHE_DIR+File.separator+"cache.zip")));
byte[] data = new byte[1024];
while((count = in.read(data,0,1024)) >= 0){
out.write(data, 0, count);
}
しかし、このwhileループは止まらないので、スタックしますin.read