Недопустимый файл .toURL()?

Почему функция java.io.File.toURL() устарела? Мне нужно передать URL-адрес Toolkit.createImage(), который принимает объект URL. Javadoc рекомендует использовать File.toURI().toURL(). Однако:

C:\Documents and settings\Administrator\...

становится:

C:\Documents%20and%20settings\Administrator\...

который, очевидно, является недопустимым местоположением файла. Я нашел File.toURL() для создания URL без экранирования, однако он устарел. Хотя это работает, я боюсь использовать устаревшие функции. Какой метод, который не осуждал, делает то же самое?

EDIT: сейчас мой код выглядит следующим образом:

spriteImage1 = tkit.createImage(new File("./images/sprite1.png").getCanonicalFile().toURL());

EDIT: Мне нужно создать образ из папки вне моего .jar файла. Мне потребуется относительное местоположение ( "./images/sprite1.png" ). Метод createImage (String) генерирует исключение, когда я пытаюсь дать ему относительный путь.

Ответ 1

Использование:   URL url2 = file.toURI(). ToURL();

Ответ 2

Он не обрабатывает специальные символы правильно, как эта ошибка.

Ответ 5

Я думаю, что правильный ответ на этот вопрос - тот, который показан в этой ссылке http://www.jguru.com/faq/view.jsp?EID=1280051

Как показано в ссылке выше, правильный способ сделать это:

// Supposing f is the referenced file in code and we want to
// get an URL instance without deprecation warnings.
URL externalForm = f.toURI().toURL();

В MalformedURLException отсутствует catch, поскольку вопрос заключается в отказе метода file.toURL().

Надеется, что это поможет.

Ответ 6

Вы можете использовать ImageIO в качестве альтернативы.

Ответ 7

Я думаю, что вы должны написать url таким образом

C:/Документы и настройки/Администратор/...

не в этом

C:\Documents and settings\Administrator...