Я пытаюсь прочитать изображение, которое находится где-то в Интернете, из моей программы на Java. До сих пор я успешно загрузил изображение, используя следующий код.
URL url = new URL("http://www.google.com/images/nav_logo4.png");
Image img = Toolkit.getDefaultToolkit().getImage(url);
Я хочу знать, почему этот код (который я впервые попробовал) не работает:
BufferedImage img = ImageIO.read(new File("http://www.google.com/images/nav_logo4.png"));
Это даст мне преимущество: BufferedImage
. Кроме того, как я могу сделать вышеупомянутый блок кода, пока изображение не загружено? Я знаю, что могу использовать ImageObserver
, но есть ли более простой способ?
Когда я пробую второй вариант, я получаю это исключение:
javax.imageio.IIOException: Can't read input file!