java - 在 Spring MVC 应用程序中打开静态文件

标签 java spring file spring-mvc

我有一个文件存储在 src/main/resources/data 中,我想从我的一个组件的 Spring Bean 类中打开它。我写了以下内容:

private static final String FILE_NAME = "MyFile.csv";
private static final String SEPARATOR = System.getProperty("file.separator");
private static final String FILE_FOLDER = "src" + SEPARATOR + "main" + SEPARATOR
 + "resources" + SEPARATOR + "data" + SEPARATOR;

private static final String FILE_PATH = FILE_FOLDER
        + FILE_NAME;


public boolean readFile() {

    String filePath = FILE_PATH;

    InputStream is = this.getClass().getResourceAsStream(filePath);

    System.out.println(is);

    BufferedReader br = new BufferedReader(new InputStreamReader(is));

    // stuff
}

这个类是一个@Component,它的方法被@RestController调用。

对于给定的代码,InputStream 为空。我怎样才能干净地找到资源?谢谢。

最佳答案

目录 src/main/resources 是您资源的基础(“类路径的根目录”)。

试试 filePath = "/data/MyFile.csv"

请注意,您可以在 Windows 和 Linux 上安全地使用“/”。

关于java - 在 Spring MVC 应用程序中打开静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24957691/

相关文章:

spring - Kotlin 中的泛型方法无法识别类型

c - 如何在 C 中每 3 个字符后添加一个换行符?

java - 如何独立于Java项目的路径打开文件?

file - 如何在 Yii2 框架中验证现有文件

java - 启动 AppEngine MapJob 出现错误 : com. google.appengine.api.modules.ModulesException:未知模块

java - Mule ESB 在 Callable 类之外读取 @Value 属性

java - JList 使用自定义 ListCellRenderer 获得错误的尺寸

java - 如何使用 Hibernate Validator 动态解析消息参数?

java - java 将十六进制字符数组转换为字节数组

java - 无法从类 : java. util.Map 的 JAXB 中发现 QNAme