6

私はそのようなファイルを取得します:

String myFile = "D:/dev/workspace/MyProject/WebContent/stats/stats.csv";
File statsFile = new File(myFile);

しかし、相対パスのみをstats/stats.csv. コードに完全なパスを記述する必要はありません。

サーブレットでは、次のようにします。

File statsFile = new File(this.getServletContext().getRealPath("/") + "stats/stats.csv");

しかし、ここではサーブレットではありません。では、Javaクラスで同等の方法は何ですか?

4

3 に答える 3

2

InputStreamCLASSPATH に入れ、取得した usingから読み取る必要がありますgetResourceAsStream()。これは、ファイルにアクセスするためのパスに依存しない方法です。

于 2012-09-27T11:39:35.287 に答える
0

解決策を見つけました。JSP を使用して使用し、クラスFile statsFile = new File(this.getServletContext().getRealPath("/") + "stats/stats.csv")に渡すことができます。statsFile

于 2012-09-27T14:10:40.270 に答える
0
String basePath = "D:/dev/workspace/MyProject/WebContent";
String absolutePath = "D:/dev/workspace/MyProject/WebContent/stats/stats.csv";

String relativePath = new File(basePath).toURI().
                        relativize(new File(absolutePath).toURI()).getPath();

System.out.println(relativePath);   // stats/stats.csv

basePath取得する相対パスですRelative Path

于 2012-09-27T12:13:18.893 に答える