4

那是我的控制器:

public class GreetingController implements Controller
{

  private static final String MARKERS_FILE_NAME = "markers.txt";


   @Override
   public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception
   {

        String result = null;

          File file = new File(getClass().getResource(MARKERS_FILE_NAME).toURI());
       }
}

我的文件markers.txt 与控制器处于同一级别,但令人费解的是,我在这一行得到了一个N​​ullpointer:File file = new File(getClass().getResource(MARKERS_FILE_NAME).toURI());

java.lang.NullPointerException
    com.codenvy.example.spring.GreetingController.handleRequest(GreetingController.java:27)
    org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

仅供参考:我正在使用https://codenvy.com/

在此处输入图像描述

我也试过

  InputStream in = this.getClass().getClassLoader()
               .getResourceAsStream("com/codenvy/example/spring/markers.txt");
  BufferedReader br = new BufferedReader(new InputStreamReader(in));

有了这个结果:

java.lang.NullPointerException
    java.io.Reader.<init>(Reader.java:78)
    java.io.InputStreamReader.<init>(InputStreamReader.java:72)
    com.codenvy.example.spring.GreetingController.handleRequest(GreetingController.java:32)
4

1 回答 1

0

我认为您需要指定markers.txt 对于类路径根目录的文件路径。由于您的屏幕截图显示了包结构,因此该路径是已知的。以下任何一项都应该有效:

InputStream in = this.getClass().getClassLoader()
                .getResourceAsStream("com/codenvy/example/spring/SomeTextFile.txt");

InputStream in = this.getClass()
      .getResourceAsStream("/com/codenvy/example/spring/SomeTextFile.txt");

上面的代码片段返回一个InputStream,如果您打算阅读这些文件,希望这对您来说已经足够了。

于 2016-06-30T12:28:53.263 回答