专业回答
相对路径的话,可以先获取到当前文件的编译路径,之后在找到想找文件的路径的思路来实现。
举例:
XMLS.class.getClass().getResourceAsStream("config.properties");
解释:XMLS.class.getClass()是获取当前的类编译路径,之后通过getResourceAsStream的形式即可找到要读取的文件的路径。
备注:这个方法中后面的路径也可以通过截取的形式来进行路径获取,实现原理都是找到当前类路径,之后通过相对位置找到另外文件路径。
举例:
XMLS.class.getClass().getResourceAsStream("config.properties");
解释:XMLS.class.getClass()是获取当前的类编译路径,之后通过getResourceAsStream的形式即可找到要读取的文件的路径。
备注:这个方法中后面的路径也可以通过截取的形式来进行路径获取,实现原理都是找到当前类路径,之后通过相对位置找到另外文件路径。
2012-07-30 09:49
提问者采纳
放在包里,要用特殊的方法——getResourceAsStream(),直接用相对路径、绝对路径都不对! InputStream is = this.getClass().getResourceAsStream(".properties"); BufferedReader br = new BufferedReader(new InputStreamReader(is)); 这里面也涉及到路径问题,试试看。 loader.getResourceAsStream()肯定是不对的,这样只会在ClassLoader所在的包内找,显然找不到你的配置文件,除非这个类是你重写的,而且与配置文件打包在一个包里 你的"dao.properties"文件是放在哪个目录下的?也就说说的你class结构是什么样子? 如果是同ConfigUtil类同目录,那么试下 InputStream ips=ConfigUtil.class.getResourceAsStream("dao.properties"); 如果是其它目录,那么就必须用绝对路径了!
-
提问者评价
-
谢了,虽然还是没运行起来! 可能是其他问题吧,很纠结~ 谢过谢过,辛苦了