Конвертировать URL в AbsolutePath - PullRequest
       1

Конвертировать URL в AbsolutePath

12 голосов
/ 03 сентября 2010

Есть ли простой способ преобразовать URL-адрес, содержащий двухбайтовые символы, в абсолютный путь?

Причина, по которой я спрашиваю, заключается в том, что я пытаюсь найти такие ресурсы:

URL url=getClass().getResources("/getresources/test.txt");
String path=url.toString();
File f=new File(path);

Программа не может найти файл. Я знаю, что путь содержит «% 20» для всех пробелов, которые я могу преобразовать, но моя настоящая проблема в том, что я использую японскую ОС, и когда файл jar программы находится в каталоге с японским текстом (например, デ ス ク ト ッ プ), я получаю 1006 * URL-кодировка имени каталога, как это:

% е3% 83% 87% е3% 82% b9% е3% 82% аф% е3% 83% 88% е3% 83% 83% е3% 83% 97

Я думаю, что мог бы получить байтовые коды UTF-8 и преобразовать их в соответствующие символы, чтобы найти файл, но мне интересно, есть ли более простой способ сделать это. Любая помощь будет принята с благодарностью.

нт

Ответы [ 2 ]

34 голосов
/ 03 сентября 2010
URL url=getClass().getResource("/getresources/test.txt");
File f=new File(url.toURI());
5 голосов
/ 03 сентября 2010

File имеет конструктор, принимающий аргумент типа java.net.URI для этого случая:

File f = new File(url.toURI());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...