Как получить favicon.ico с веб-сайта с помощью Java?

Итак, я делаю приложение для хранения ярлыков всех любимых приложений пользователя, действующее как хаб. У меня может быть поддержка реальных файлов, и у меня есть парсер .lnkдля ярлыков. Я подумал, что было бы неплохо, если бы приложение также поддерживало ярлыки Интернета. Вот что я делаю:

Предположим, я пытаюсь получить значок Google( http://www.google.com/favicon.ico).

  1. Я начинаю с того, что избавляюсь от лишних страниц (например, www.google.com/anotherpageстанет www.google.com.

  2. Затем я использую ImageIO.read(java.net.URL)для получения изображения

Проблема в том, что ImageIOникогда не возвращает изображение при вызове этого метода:

String trimmed = getBaseURL(page); //This removes the extra pages
Image icon = null;    
try {
    String fullURLString = trimmed + "/favicon.ico";
    URL faviconURL = new URL(fullURLString);
    icon = ImageIO.read(faviconURL);
} catch (IOException e) {
    e.printStackTrace();
}

return icon;

Теперь у меня есть два вопроса:

  1. Поддерживает ли Java формат ICO, даже если он от Microsoft?
  2. Почему ImageIOне читает URL?

Заранее спасибо!

16
задан mattbdean 18 June 2012 в 21:06
поделиться