我有以下几行代码。
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/