Подтвердить что ты не робот

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

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

Я спрашиваю, я пытаюсь найти такие ресурсы:

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

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

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

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

нт

4b9b3361

Ответ 1

URL url=getClass().getResource("/getresources/test.txt");
File f=new File(url.toURI());

Ответ 2

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

File f = new File(url.toURI());