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!");
为什么切断?
我认为你可能是正确的Stephen ......并且通常的补救措施是在工作线程上执行下载(或实际上任何“潜在的长时间运行的进程”),在后台释放EDT以响应浏览器......所以它不会因为它在“死亡”的假设而杀死你的applet,因为它在timout限制内“没有响应”。 – corlettk 2011-05-14 07:12:32
是的,我检查了控制台。它在大约400后随机停止并加载正常。缺少的瓷砖显示为白色。 – nn2 2011-05-14 07:21:17
所以,你说的是在加载tile开始之前做'Thread.sleep(10000)'? – nn2 2011-05-14 07:22:01