2014-05-21 8 views
0

Spring MVC 애플리케이션에서 컨트롤러 내의 파일을 읽어야한다.Spring MVC app 용 기본 리소스 폴더

@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 아래에 파일을 넣으려고했습니다.

옵션 중 아무 것도 작동하지 않습니다.

답변

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)을 사용하여 읽을 수 있습니다.

은 (당신이 라이브러리를 사용하지 않을 경우) 뒤에서 무엇을 기본적으로 : 그런 다음 File 객체를 생성하기 위해 URL을 사용할 수 있습니다

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

.

+0

감사합니다. 저는 구아바의 솔루션 대신 Spring의 ClasspathResource를 사용했지만 src/resources 아래에 파일을 두는 아이디어는 저에게 효과적입니다. – Luke

관련 문제