0

私はそれを試しました:

public class FilePath {

    public File return_path () {

        URL url = getClass().getResource("file.txt"); 
        File file = new File(url.getPath()); 
        return file;
    }
}

印刷すると、出力は次のようなパスになります。

最終的に .jar が読み取らなければならないファイルのパスを毎回再定義しないようにするために、このメソッドを作成しました。

奇妙なキャラクターに問題がある可能性がありますか?

ところで、メインクラスから呼び出すと:

public static void main(String[] args) {

        FilePath path = new FilePath(); 
        File file = path.return_path();
        System.out.println (file);

try{
BufferedReader input = new BufferedReader(new FileReader(file));

            String line;

    int i = 0;
    while ((line = input.readLine ()) != null)
    {
         System.out.println(line);
    }
            input.close();
        } 
        catch(Exception ex){
           System.err.println("Error: " + ex.getMessage());
        }
}

「ファイルが存在しません」というエラーが表示されます。

どうすれば解決できますか?ありがとう

4

1 に答える 1

0

URL はエスケープされます。これは、たとえば URL にスペースを書き込むことができない Web ブラウザーに役立ち、ASCII では "%20"、16 進数の 20、または char 32 として表されます。

あなたが望むのは、これをエスケープしないことです。次の投稿が役立つかもしれません

于 2013-05-09T20:46:37.380 に答える