0

私の現在のアプリケーションは、ファイルからデータを取得してその属性を初期化する必要があります。ユーザーが変更できるようにするには、ファイルに保存する必要があります。

String strFile = ClassLoader.getSystemResource("myFile.csv").getPath();
if(strFile==null)
        throw new Exception("File not find");
BufferedReader br = new BufferedReader(new FileReader(strFile));
//Begin reading file process..

私の問題はそれstrFileがnullではないことですが、初期化されたときにjava.io.FileNotFoundExceptionbrが発生します。次のスタックを参照してください。

java.io.FileNotFoundException: C:\Users\TH951S\My%20Documents\Eclipse\Workspace
                                 \My%20App\bin\myFile.csv 
                                 (The system cannot find the path specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)

ファイルが指定されたパスにあり、すべてが正しいように見えることを確認しました。

なぜこれが起こっているのか誰かが知っていますか?または、パスが不明な場合にファイルを取得する別の方法はありますか?

読んでくれてありがとう、そして答えてくれてありがとう、

4

2 に答える 2

3

私は私の問題を解決します。それは、あなたがそれを早く解決しないことに愚かであると感じさせるものの1つです。

URLは値でスペースをエンコードして%20おり、Javaは初期化時に値をスペース文字に置き換えませんFileReader%20したがって、で変更する必要があり" "ます。

それを数える別の方法もあります。次のようにを初期化BufferedReaderすることもできます。InputStreamReader

InputStream in=ClassLoader.getSystemResourceAsStream("myFile.csv");
BufferedReader br = new BufferedReader(new InputStreamReader(in));
于 2012-07-05T10:04:04.377 に答える