使用相对路径读文件时,文件路径一定是项目的根路径,将文件放在其他任何目录都无法读取到。
2. 能读子模块下的文件吗?当使用java io(File类、fileInputStream类等)读文件时,要注意多模块情况下文件的相对路径问题,如:
即使将文件放在子模块的根路径也不行,一定要放在顶级项目根路径!
3. 读resources下的文件
想要读取resources下的文件,相对路径肯定是行不通的:
编译后,resources下的文件会 导出到 target目录下的classes文件夹下
而使用绝对路径也不符合实际项目需求,该怎么办呢?
其实只需要根据类路径,使用java反射就能动态获取文件绝对路径:
【总结】想要读取maven项目resources下的文件,只需要使用:
// ClassName替换为具体的类 InputStream inputStream =ClassName.class.getResourceAsStream("/a.xml"); //或者使用: InputStream inputStream =ClassName.class.getClassLoader().getResourceAsStream("a.xml");
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)