6

JavaのURLからインターネットから画像を取得しようとしています。次のコードを使用しています。

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

WebAddress の内容によっては、機能することもあれば、無期限にハングアップすることもあります。エラー メッセージは表示されません。ただ実行され続け、何もしません。

画像をコピーして Web ブラウザーに貼り付けることで確認できるように、永久にハングアップするアドレスには間違いなく画像があります。どのパターンが機能し、どのパターンが機能しないかはないようです。それらはすべて jpeg です。私はいくつかの検索を行い、URL から画像を取得するための他の方法をいくつか見つけましたが、それらすべてで同じことが起こります。一部の画像で機能し、他の画像でハングアップします。

これを引き起こしている可能性のあるものと、それを修正する方法について何か考えがありますか?

4

1 に答える 1

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();
于 2012-06-15T19:18:45.437 に答える