/**
* 这里,因为ClassLoader.getResource()返回的这个绝对路径,是不会对你的路径编码的,如果有空格是哈的,你会直接返回
* 此时,如果是有特殊字符,后面的getPath()就会有依据utf-8修改;使得路径找不到
* 返回错误:jdbc.properties 系统找不到指定路径问题
//用类加载器获取资源文件的绝对路径
ClassLoader classLoader = JDBCUtils.class.getClassLoader();
URL resource = classLoader.getResource("jdbc.properties");
/**
* 这里,因为ClassLoader.getResource()返回的这个绝对路径,是不会对你的路径编码的,如果有空格是哈的,你会直接返回
* 此时,如果是有特殊字符,后面的getPath()就会有依据utf-8修改;使得路径找不到
* 返回错误:jdbc.properties 系统找不到指定路径问题
*/
URI uri = resource.toURI();
String path = uri.getPath();
System.out.println(path);
//pro.load( new FileReader("D:\\D Computer sth for download\\chuanzhiboke\\itcast\\day04_jdbc\\src/jdbc.properties"));
pro.load(new FileReader(path));
本文探讨了在Java中使用ClassLoader.getResource()方法获取资源文件路径时遇到的问题。当路径包含空格或特殊字符时,可能会导致路径无法正确加载,从而引发‘系统找不到指定路径’的错误。解决方案是通过URI转换来正确处理路径。文章详细分析了这个问题,并提供了修复代码示例。





