我在单元测试中从资源文件夹中读取文件
我可以在target / test-classes
中看到该文件但是当我尝试将文件包装到fileInputStream中时,这会抛出异常,因为找不到文件
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("CV.pdf").getFile());
FileInputStream fis = new FileInputStream(file)
输出debuging:
ClassLoader.getResource方法( “CV.pdf”):
file:/Users/Development/File%20-%20Test%20Java%20trial/Code/target/test-classes/CV.pdf
也许可能是因为我的文件夹有空白名称?
文件肯定存在,我可以在该文件夹中看到它。
我在这里做错了什么?。
问候。
答案 0 :(得分:2)
你真的需要FileInputStream吗?
实际文件可以在jar内部(如果你指示maven制作test-jar)。
更灵活的方法是使用InputStream代替:
try(final InputStream is = getClass().getResource("CV.pdf").openStream())
{
//Do something with is
}