0

.txt ファイルから .jsp ページのデータを読み込もうとしています。しかし、私はこのエラーが発生します:

根本原因と

java.io.FileNotFoundException: Predicciones\predicciones.txt (System can't find path specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileInputStream.<init>(FileInputStream.java:97)
    at org.apache.jsp.getDatosPredicciones_jsp._jspService(getDatosPredicciones_jsp.java:123)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

コードは次のとおりです。

{
        int partido = Integer.parseInt(request.getParameter("partido"));
        int irabazlea;
        float probabilidad;


        FileInputStream fstream = new FileInputStream("Predicciones\\predicciones.txt");
        DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String strLine;
        int kont=1;
        while (((strLine = br.readLine()) != null) && (kont<=partido))

問題はどこだ?"Predicciones" ディレクトリは jsp の同じレベルにあります。

「Predicciones」ディレクトリを WEB-INF に配置しようとしましたが、うまくいきません。

4

2 に答える 2

0

はい、ただしjspはコンパイルされ、実際のjspファイルとは別の場所に置かれます。

WEB-INF フォルダー内からファイルにアクセスするには、次を使用します。

/WEB-INF/foldername/resource.ext

/は使用しないでください。

/folder/me.jpg をパスとして使用すると、このファイルにアクセスできます ww w.mydomain.com/appname/folder/me.jpg アプリケーションがルートとしてデプロイされている場合を除きます。その場合、このリソースにアクセスします ww w.mydomain.com/folder/me.jpg

リソースにアクセスするには、http://docs.oracle.com/javase/1.4.2/docs/guide/resources/resources.htmlを参照してください。

あなたの場合、c://apache//webapps/myapp/myfolder...etc などの絶対パスを使用してファイルにアクセスするか、リソースがコンパイルされた .class ファイルに相対的な相対パスを使用できます。

于 2012-07-26T13:13:32.690 に答える