2011-05-14 38 views
0

我試圖從網站上下載圖片......它在本地很好用......但是當applet通過網絡瀏覽器運行時,它會被切斷。例如,它下載的圖像很好,但在460-500左右...圖像下載突然停止。Java - url超時

下面是我使用的是什麼:

   for (int i = 0; i < NUM_TILES; i++) { 

         try { 
       System.out.println("Downloading tile " + i + " of "+NUM_TILES); 
       File outputFileLocation = new File (System.getenv("APPDATA") + "\\.mystik\\tiles\\t"+i+".png");    
       String imgURL="line_tile/t"+i+".png"; 
       URL urlItem = new URL(imgURL); 
       Image imageBR = ImageIO.read(urlItem); 
       BufferedImage cpimg=(BufferedImage) imageBR; 
       ImageIO.write(cpimg, "png", outputFileLocation); 
         } catch (MalformedURLException e1) { 
          e1.printStackTrace(); 
         } catch (IOException ex) { 
          ex.printStackTrace(); 
         } 
       } 
       System.out.println("Tiles downloaded!"); 

爲什麼切斷?

回答

0

爲什麼切斷?

這很難說。您是否在Web瀏覽器中檢查了Java控制檯?你得到一個異常堆棧跟蹤?

一種可能性是瀏覽器已經決定這個applet花了太長時間......但我只是在猜測。

+0

我認爲你可能是正確的Stephen ......並且通常的補救措施是在工作線程上執行下載(或實際上任何「潛在的長時間運行的進程」),在後臺釋放EDT以響應瀏覽器......所以它不會因爲它在「死亡」的假設而殺死你的applet,因爲它在timout限制內「沒有響應」。 – corlettk 2011-05-14 07:12:32

+0

是的,我檢查了控制檯。它在大約400後隨機停止並加載正常。缺少的瓷磚顯示爲白色。 – nn2 2011-05-14 07:21:17

+0

所以,你說的是在加載tile開始之前做'Thread.sleep(10000)'? – nn2 2011-05-14 07:22:01