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をコントローラーの同じレベルに持っていますが、理解できないことに、この行にNullpointerがあります: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 に答える