如果要在Spring Boot JAR中从类路径加载文件,则必须使用该resource.getInputStream()
方法将其作为InputStream进行检索。如果您尝试使用,resource.getFile()
您将收到错误,因为Spring尝试访问文件系统路径,但它无法访问JAR中的路径。
//方式1:
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(fileName)
//方式2:
public static String getFile(String filePath) {
ResourceLoader resourceLoader = new DefaultResourceLoader();
Resource resource=resourceLoader.getResource("classpath:"+filePath);
StringBuffer strBuff = new StringBuffer();
try (InputStream inputStream = resource.getInputStream()) {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String string = null;
while ((string = bufferedReader.readLine()) != null) {
strBuff.append(string);
}
} catch (Exception e) {
e.printStackTrace();
}
return strBuff.toString();
}
参考:https://smarterco.de/java-load-file-from-classpath-in-spring-boot/