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



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

谢谢。

它在本地工作,因为文件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文件夹,并将其作为普通文件进行访问。

最新更新