0

NetBeansでJSPを使用しています。

Javaコードで、ファイルからデータを読み取ろうとしています。まず、パスを指定してファイルを開きます。

私のコードはサーバー(GlassFish)で実行されるため、ファイルパスを実行先のマシンから独立させたいと思います。したがって、プロジェクトディレクトリのルートに保存されているファイルを含むフォルダ名でパスを開始したいと思います。私はそれを達成するために一生懸命努力しましたが、できませんでした。

私はオンラインで読んで、この方法を見つけましたが、それでも機能しません:

<%

  //building the tree here.
GraphBuilder tree = new GraphBuilder("${pageContext.request.contextPath}\\src\\java\\Database\\OptimizedFullTermFile.pad");

%>

誰か助けてもらえますか?ありがとうございました。

4

2 に答える 2

1

クラスパスから読んでください。srcJavaソースコード(Javaパッケージ/クラス構造)を表す一般的なフォルダーを使用しているとすると、ファイルOptimizedFullTermFile.padはJavaパッケージに配置されていると思いますjava.Database(パッケージ名の大文字?すべて小文字)。その場合、それはすでにクラスパスにあるので、次のようにそこから直接取得できます。

InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("java/Database/OptimizedFullTermFile.pad");
// ...

失敗した試みについて:ELはスクリプトレット${pageContext.request.contextPath}で機能することはありません。たとえそうだったとしても、それは正しいことではありません。それは、クラスパスは言うまでもなく、ローカルディスクファイルシステムパスの一部ではないwebappURLのコンテキストパスを返します。ちなみに、スクリプトレットを使用することは、10年以来強く推奨されていません

参照:

于 2012-12-18T11:57:21.290 に答える
1

次のコードを試して、次のコードからプロジェクト内のディレクトリファイルを取得できます。

this.getServletContext().getRealPath("")+[your file path in project web directory]
于 2012-12-18T12:12:00.100 に答える