0

私は日食に非常に慣れていません。コードに次の行があります。

BufferedReader bf = new BufferedReader(new FileReader("dvdinfo.txt"));

シンプルなテキスト エディタと Windows コンソールで実装すると問題なく動作しますが、Eclipse で実行するとFileNotFoundException.

.javaはい、私は常に、このコードを含むファイルと同じフォルダーに txt ファイルを保持しています。また、Eclipseでは、ソースコードとクラスファイルの両方を同じフォルダーに置くことを選択しました。

Eclipse で同じフォルダー内のファイルの名前を指定する別の方法はありますか。

注:私はWindows 7とEclipse 3.7を使用しています

4

2 に答える 2

1

予期しないFNFE(特に修飾されていないファイル名の場合)は、自分が思っているディレクトリを探していないことが原因である傾向があります。修飾されたファイル名はスタックトレースに含まれていますか?

これを試して;

File file = new File("dvdinfo.txt");
try {
  BufferedReader bf = new BufferedReader(new FileReader(file));
  ......
} catch (FileNotFoundException fnfe) {
  //Note that writing to syserr is only for debugging - don't do this in prod
  System.err.println("Can't find " + file.getCanonicalPath());
  fnfe.printStackTrace();
}
于 2012-06-20T12:13:56.727 に答える
1

はい、私は常に、このコードを含む .java ファイルと同じフォルダーに txt ファイルを保存しています。

これは、コードを実行しているときに同じディレクトリにあるという意味ではありません。

Eclipse で同じフォルダー内のファイルの名前を指定する別の方法はありますか。

何と同じフォルダ?ファイルをビルドの出力と一緒にパッケージ化する場合は、Eclipse でリソースとして指定できますが、Class.getResourceAsStream()またはを使用して読み取る必要がありますClassLoader.getResourceAsStream()

本当にファイルにしたい場合は、絶対ファイル名を指定する Eclipse の実行構成で作業ディレクトリを変更することをお勧めします。

于 2012-06-20T12:09:10.087 に答える