kotlin 为什么在加载文件时收到NoSuchFileException错误?

unftdfkk  于 2022-12-30  发布在  Kotlin
关注(0)|答案(2)|浏览(273)
Files.readString(Paths.get(ClassPathResource("temp.md").uri)

src〉main〉resources文件夹下的markdown文本通过上面的代码加载,在本地环境下检查文件位置,数据正常加载,但是在ec2上执行构建的jar时,返回如下错误。
我觉得,建jar的路径是错误的,但我不知道如何解决,请指教

rqcrx0a6

rqcrx0a61#

或者,我们可以使用类加载器示例读取资源。

ClassLoader classLoader = SpringBootResourcesApplication.class.getClassLoader();
    File file = new File(classLoader.getResource("temp.md").getFile());
83qze16e

83qze16e2#

当应用程序被打包为JAR时,从类路径中的文件加载文件的方式会有所不同。
有关详细说明,请查看this Baeldung article
这将独立于代码的打包方式工作:

import lombok.SneakyThrows;
import lombok.experimental.UtilityClass;
import org.springframework.util.ResourceUtils;

import java.nio.file.Files;

@UtilityClass
public class FileTestUtils {

    @SneakyThrows
    public byte[] getFileAsBytes(String fileName) {
        return Files.readAllBytes(ResourceUtils.getFile("classpath:" + fileName).toPath());
    }

    @SneakyThrows
    public String getFileAsString(String fileName) {
        return new String(Files.readAllBytes(ResourceUtils.getFile("classpath:" + fileName).toPath()));
    }

}

相关问题