将 URL 转换为绝对路径

2022-09-02 02:14:41

有没有简单的方法可以将包含双字节字符的URL转换为绝对路径?

我问的原因是我试图找到这样的资源:

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

程序找不到该文件。我知道路径包含我可以转换的所有空格的“%20”,但我真正的问题是我使用的是日语操作系统,当程序jar文件位于带有日语文本的目录中时(例如デスクトップ),我得到目录名称的URL编码,如下所示:

%e3%83%87%e3%82%b9%e3%82%af%e3%83%88%e3%83%83%e3%83%e3%83%97

我想我可以获得UTF-8字节代码并将其转换为正确的字符来查找文件,但我想知道是否有更简单的方法可以做到这一点。任何帮助将不胜感激。

nt


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

答案 2

如果您有兴趣从URL获取路径,则可以执行以下操作:

Path p = Paths.get(url.toURI());