Java-url超时

Java-url超时,java,Java,我正在尝试从网站下载图片。。。它在本地非常有效。。。但当小程序通过web浏览器运行时。。它被切断了。例如,它下载的图像很棒,但大约460-500。。。图像下载突然停止 以下是我正在使用的: for (int i = 0; i < NUM_TILES; i++) { try { System.out.println("Downloading tile " + i + " of "

我正在尝试从网站下载图片。。。它在本地非常有效。。。但当小程序通过web浏览器运行时。。它被切断了。例如,它下载的图像很棒,但大约460-500。。。图像下载突然停止

以下是我正在使用的:

                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!"); 
为什么要切断

为什么要切断

很难说。您是否已检查web浏览器中的Java控制台?您是否收到异常堆栈跟踪


一种可能是浏览器认为小程序花费的时间太长。。。但我只是猜测。

我想你可能是对的,斯蒂芬。。。通常的补救方法是在后台在工作线程上执行下载或任何可能长时间运行的进程,释放EDT以响应浏览器。。。因此,它不会在假定小程序已死亡的情况下关闭它,因为它没有在timout限制内响应。是的,我检查了控制台。它会在大约400分钟后随机停止,并正常加载。丢失的磁贴显示为白色。那么,你的意思是在加载磁贴之前执行Thread.sleep10000?@Jahkr-no。他是说你应该在不同的线程上进行下载;阅读