java - java中的sysLoader.getResource()问题

标签 java url classloader

我有以下几行代码。

sysLoader = (URLClassLoader)Thread.currentThread().getContextClassLoader();
url = sysLoader.getResource("tempFile.txt");

这是一个奇怪的问题。如果我从路径(文件夹名称)中没有空格的路径运行它,那么它运行正常。但如果路径包含任何空格(行“c:\New Foler...”),则它不起作用。

如何解决?

编辑:更详细 - 我检查了 sysloader 对象。

sysloader -> UCP -> path

路径中的字符为 %20 而不是空格

因此所有的 URL 都是空的。

如何解决?

最佳答案

Sun/Oracle 知道这一点,他们的建议是使用 URI 对象来删除 %20 个字符:

不要这样做:

FileInputStream fis = new FileInputStream(url.getFile());

您可以通过首先将 URL 转换为 URI,然后使用 URI 的路径组件作为文件名来强制解码任何 % 转义字符:

URI uri = new URI(url.toString());
FileInputStream fis = new FileInputStream(uri.getPath());

关于java - java中的sysLoader.getResource()问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3263560/

相关文章:

java - 无法编辑通过 Class.getResource() 加载的属性文件

java - Jar 在 jar 中 类加载和方法执行

java - Java中的@Created注解

Java - 如何从 MySQL 过程中获取 ReturnCode?

java - 如何将数据库中的所有行元素添加到JSON对象

jquery - 如何使用 jquery 操作查询字符串

java - 如何使用反射从外部 JAR 文件检索一些资源

java - 在 Java 中调用类的方法

url - Server.transfer 再次更改 URL

perl - 批量转换域名到IP