【问题标题】:Java reading image from URL hangingJava从URL挂起读取图像
【发布时间】:2012-06-15 19:08:43
【问题描述】:

我正在尝试从 java 中的 URL 从 Internet 获取图像。我正在使用以下代码。

URL url = new URL(webAddress);
image = ImageIO.read(url);

有时它可以工作,有时它只是无限期挂起,具体取决于 WebAddress 是什么。没有错误消息,它只是继续运行并且什么都不做。

肯定有图像在它永远挂起的地址,通过将它们复制并粘贴到网络浏览器中来确认。似乎没有哪些模式可以工作,哪些不工作 - 它们都是 jpeg。我进行了一些搜索,发现了一些从 URL 获取图像的其他方法,但同样的事情发生在所有这些方法上——它们处理一些图像并挂起其他图像。

您知道是什么原因造成的,以及如何解决吗?

【问题讨论】:

  • 你能举一个它挂在上面的示例 URL 吗?

标签: java url javax.imageio


【解决方案1】:

嗯,我不确定试试这个,看看是否有任何更改或错误。我还认为也许您将 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();

【讨论】:

  • 嗯,所以它可能只是一个错误?很高兴你让它工作我已经养成了 ImageIcon().getImage() 的习惯,所以从来没有遇到过麻烦。
  • 读完图片记得关闭输入流(即使抛出异常)!
猜你喜欢
  • 2015-03-14
  • 2012-05-04
  • 1970-01-01
  • 1970-01-01
  • 2016-07-20
  • 2013-03-29
  • 2021-07-15
  • 2021-05-15
  • 2017-01-28
相关资源
最近更新 更多