我正在尝试从Spring Boot中的资源读取demo.html文件。 我已经尝试过此代码,但是它只能在本地运行,不能在服务器上运行:
val demoFile = new File(this.getClass.getClassLoader.getResource("foo/demo.html").getFile)
val demoFile = new File(ClassLoader.getSystemClassLoader.getResource("foo/demo.html").getFile)
val demoFile = new File(Thread.currentThread().getContextClassLoader.getResource("foo/demo.html").getFile)
在服务器上我收到FileNotFoundException
谢谢。
答案 0 :(得分:0)
它在本地工作,因为文件demo.html
在本地计算机上。您可以在build
文件夹中或您的IDE用来编译代码的任何文件中找到它。
在服务器上运行项目时,只有项目jar
文件,例如project.jar
。服务器上没有demo.html
文件。
demo.html
位于project.jar
文件中。 project.jar
是一个简单的ZIP存档。因此,您需要一种从ZIP存档(您的project.jar
)中获取文件的方法。
最简单的方法是使用流。您可以读取文件,例如,以字符串形式。
如果您需要解析文件(可以是JSON,XML或HTML),则可以将流直接传递到解析库。
也不要忘记关闭流(当然,如果库未关闭流)。
https://www.baeldung.com/spring-classpath-file-access
您还可以将文件从jar文件复制到TEMP
文件夹中,然后像平常一样访问文件。