我做在Java中,從網絡服務器下載文件的應用程序。這個文件是一個816kb的zip文件。我已經在3臺不同的計算機上測試了應用程序,並且它不適用於一臺計算機。對於那個它只下載文件的13kb然後停止。當我檢查htaccess的日誌,我看到這一點:Java將無法完成下載zip文件
一個: 「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機工作時,PC b不工作)
我已經嘗試了許多不同的方式來下載Java中的文件,但所有的方面,它停止13KB後下載。我也試着用512M內存運行te應用程序,但這不是問題。
這是我現在有:
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
java會不會影響什麼的服務器上。給你有兩個相同的URL請求產生兩個大小不同的反應,別的東西是怎麼回事。 –
你關閉outputstream嗎? – olyanren
是的,在while循環之後 –