我正试图通过java中的URL从互联网上获取图像。我正在使用以下代码。
URL url = new URL(webAddress);
image = ImageIO.read(url);
有时候它会起作用,有时它会无限期地挂起,具体取决于WebAddress是什么。没有错误消息,它只是继续运行而什么都不做。
通过将它们复制并粘贴到网络浏览器中,可以确保图像永久挂起。似乎没有哪种模式可以运行,哪些不运行 - 它们都是jpeg。我已经做了一些搜索,并找到了一些从URL获取图像的其他方法,但同样的事情发生在所有这些 - 它们处理一些图像并挂在其他图像上。
你知道造成这种情况的原因,以及如何解决这个问题?
答案 0 :(得分:7)
嗯,我不确定试试这个,看看是否有任何变化或错误。我也想也许你有setRedirects(boolean b)为false这也可能会给出问题,但首先尝试一下:
URLConnection con = null;
InputStream in = null;
try {
String webadd="urls go here try the two you have had probelms with and success";
URL url = new URL(webadd);
con = url.openConnection();
con.setConnectTimeout(10000);
con.setReadTimeout(10000);
in = con.getInputStream();
Image img = ImageIO.read(in);
if (img != null) {
System.out.println("Loaded");
} else {
System.out.println("Could not load");
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if(is != null) {
try {
is.close();
} catch(IOException ex) {
// handle close failure
}
}
if(con != null) {
con.disconnect();
}
}
}
编辑: 或者可能是一个错误?:http://bugs.sun.com/view_bug.do;jsessionid=2bc7386e2f8b4e2550f8b10122f?bug_id=6309072如果上述代码仍然出现错误,请检查一下:
Image img=new ImageIcon(url).getImage();