Java Spring - 如何使用类路径指定文件位置?

2022-09-01 07:33:27

如何使用类路径指定 Spring 项目中文件的位置?

这是我目前拥有的:

FileReader fr = new FileReader("C:\\Users\\Corey\\Desktop\\storedProcedures.sql");

这是硬编码到我的桌面。我希望能够使用项目中文件的路径。

FileReader fr = new FileReader("/src/main/resources/storedProcedures.sql");

有什么建议吗?


答案 1

我们是在谈论标准的java.io.FileReader吗?不会工作,但没有它就不难。

/src/main/resourcesmaven 目录内容放置在 CLASSPATH 的根目录中,因此您可以简单地使用以下方法检索它:

InputStream is = getClass().getResourceAsStream("/storedProcedures.sql");

如果结果不是(找不到资源),请随时将其包装在阅读器中:null

Reader reader = new InputStreamReader(is);

答案 2

类似问题中@NimChimpsky的答案:

Resource resource = new ClassPathResource("storedProcedures.sql");
InputStream resourceInputStream = resource.getInputStream();

使用类路径资源和接口资源。并确保正确添加资源目录(添加到类路径中)。/src/main/resources/

请注意,Resource 有一个获取的方法,因此您也可以使用:java.io.File

Resource resource = new ClassPathResource("storedProcedures.sql");
FileReader fr = new FileReader(resource.getFile());

推荐