File.toURL () устарел? - PullRequest
       6

File.toURL () устарел?

16 голосов
/ 22 апреля 2009

Почему функция 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 без экранирования, но он устарел. Хотя это работает, я боюсь использовать устаревшие функции. Какой метод не считается устаревшим, который делает то же самое?

РЕДАКТИРОВАТЬ: Прямо сейчас мой код выглядит как:

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

РЕДАКТИРОВАТЬ: мне нужно создать изображение из папки за пределами моего .jar файла. Мне нужно относительное местоположение ("./images/sprite1.png"). Метод createImage (String) выдает исключение, когда я пытаюсь дать ему относительный путь.

Ответы [ 7 ]

33 голосов
/ 27 мая 2011

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

14 голосов
/ 22 апреля 2009

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

11 голосов
/ 22 апреля 2009

Не проще ли вместо этого использовать Toolkit.createImage(File.getPath());?

5 голосов
/ 22 апреля 2009

Почему бы вам не использовать функцию createImage, которая вместо принимает имя файла String ?

4 голосов
/ 25 апреля 2017

Я думаю, что правильный ответ на этот вопрос показан в этой ссылке 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 нет перехвата, поскольку вопрос об устаревании метода file.toURL ().

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

1 голос
/ 22 апреля 2009

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

0 голосов
/ 07 февраля 2014

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

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

не в этом

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...