java - Spring MVC 应用程序的默认资源文件夹

标签 java file spring-mvc

我需要读取 Spring MVC 应用程序中 Controller 内的文件。 我可以放置文件的默认位置是什么,然后在我的 Controller 中我可以执行以下操作:

@RequestMapping(value="/")
public ModelAndView test(HttpServletResponse response) throws IOException{  

        File file = new File("simple_file_name_without_any_path_information.txt");

            // reading in the file ....
}

我需要做任何额外的配置才能使其工作吗? 我尝试将文件放在 webapp\resources 或 webapp\WEB-INF 下或普通的 webapp 中。

所有选项都不起作用。

最佳答案

使用 java.io.File,默认路径将是启动路径,在您的情况下可能是应用程序服务器的/bin 文件夹(请参阅 In Java, what is the default location for newly created files? )。

您可能想尝试使用 Google Guava 的 Resources.getResource("your_file.txt"),它会查找类路径,并在资源文件夹中找到该文件。然后您还可以使用 Resources.readLines(url, Charsets.UTF_8) 来读取它。

它在幕后的作用(如果您不想使用库)基本上是:

ClassLoader loader = Objects.firstNonNull(
    Thread.currentThread().getContextClassLoader(),
    Resources.class.getClassLoader());
URL url = loader.getResource(resourceName);

然后您可以使用该 URL 创建 File 对象。

关于java - Spring MVC 应用程序的默认资源文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23786277/

相关文章:

java - Qt 使用多于 1 个参数调用 java 方法

java - 带有泛型的 Spring bean constructor-arg

java - 如何仅在必要时在 Thymeleaf 模板中控制有效数字?

java - 如何开始学习Web框架的结构?

java - 更新任务模型 - RuntimeException : DataSource user is null?

Java有效实现Thread

Java:如何将 Double 2.3 更改为 "2.0"?

java - Android - 计算服务器目录中的文件数

node.js - 使用 fs 流创建一个重复文件并能够读取它

java - 通用标志的 Android 2.3 ZIP 问题