在春季启动时从服务器上的resources文件夹中读取.html文件

时间:2020-03-03 04:51:34

标签: scala spring-boot

我正在尝试从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

谢谢。

1 个答案:

答案 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文件夹中,然后像平常一样访问文件。

相关问题