我需要读取Spring MVC应用程序中控制器内的文件。 什么是我可以放置文件然后在我的控制器中的默认位置,我可以执行以下操作:
@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下。
这些选项都不起作用。
答案 0 :(得分:1)
使用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对象。