gpt4 book ai didi

java - 在服务器中找不到 Spring Boot 资源文件,但在 Eclipse 中可以使用

转载 作者:行者123 更新时间:2023-12-02 12:17:20 29 4
gpt4 key购买 nike

我在 Spring Boot 应用程序的资源目录中有一个文件。我能够在 eclipse 中正确加载它。但是当我构建这个项目并在服务器上运行它时,它会抛出 java.nio.file.NoSuchFileException

怎么了

我有以下类(class)

class TestDataLoader{
@Value("${service.filename}")
private String filename;

@Inject
private FileLoader fileLoader;

public void loadResource(){
List<String> names = fileLoader.loadResource(filename);
}
}

这是我的 FileLoader 类

public class FileLoader{
public List<String> loadResource(String filename) {
try (Stream<String> stream = Files.lines(Paths.get(filename))) {
// process the data
} catch (IOException e) {
LOGGER.error(e);
}
}
}

我的 application.yml 文件如下所示

service:
filename: src/main/Myfile.txt

最佳答案

提示 1:您应该将资源放置在 src/main/resources 中

当您运行服务器时,您的文件位于根目录中。通过执行下面的代码块应该没问题:

service:
filename: Myfile.txt

提示 2:您应该使用 ClassPathResource。见下文:

public class FileLoader{
public List<String> loadResource(String filename) {
Resource resource = new ClassPathResource(filename);
File file = resource.getFile();
Path path = file.toPath();
try (Stream<String> stream = Files.lines(path)) {
// process the data
} catch (IOException e) {
LOGGER.error(e);
}
}
}

注意:我还没有运行上面的代码...

关于java - 在服务器中找不到 Spring Boot 资源文件,但在 Eclipse 中可以使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46061937/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com