4

JFileChooserダイアログで同じファイルを選択するとうまくいきます

パスは C:\テスト\sample.txt のようなものです

次のコードは機能しません

    String teststring = "C:\\テスト\\sample.txt";
    File file = new File(teststring);

    BufferedReader reader = new BufferedReader(new FileReader(file));
    System.out.println(reader.readLine());
    ...

FileNotFoundException で失敗します

4

2 に答える 2

8

この問題は、Java がコンパイルされたときに、テスト文字のファイル エンコーディングと一致しないエンコーディングでコンパイルされていた可能性が最も高いです。挿入することで確認できます

 System.out.println(teststring);

これはおそらくテストを印刷しません</p>

デフォルトでは、エンコーディングはプラットフォームのエンコーディングです。ファイルが UTF-8 として保存されている場合は、次のようにコンパイルできます。

javac -encoding UTF-8 YourClass.java

(または、 Antでタスクのencoding="UTF-8"属性を使用します<javac>

編集:

@assylias が指摘したように、バックスラッシュはエスケープする必要があります。

于 2012-04-05T12:42:11.177 に答える
2

助けてくれてありがとう。次の変更により、ソリューションとは別に問題が解決されました

...
File file = new File(new String(teststring.getBytes(),"utf8");
...
于 2012-04-09T14:01:55.180 に答える