0

私はこれを行い、このファイルにいくつかのコンテンツを書き込みます。

fileSymbol = new File("D:\\TempFiles\\SymbolFile.xml");
fileSymbol.createNewFile();
prSymbol = new PrintWriter(fileSymbol);
while(//condition goes here){
   prSymbol.write(text);
}

次に、このファイルから次のように読み取ろうとします。

FileReader fr = new FileReader(fileSymbol);
BufferedReader br = new BufferedReader(fr);
String line = br.readLine();

実行しようとすると、次の例外が発生します

java.io.FileNotFoundException: fileSymbol (The system cannot find the file specified)

やってみると

fileSymbol.canRead();
fileSymbol.exists();

両方に対してtrueを返します。

すでにファイルを作成しているのに、なぜこのエラーが発生するのかわかりません。手動で場所を確認すると、作成したファイルが表示されます。

PS:コードのコードスニペットを提供しました。

4

2 に答える 2

4

ファイルを読む前に以下を追加してください

  prSymbol.close();

close の前に flush() を呼び出す必要はありません。参考JavaDoc - close()

于 2013-03-07T06:09:23.840 に答える
3

java.io.FileNotFoundException: fileSymbol (指定されたファイルが見つかりません)

そのメッセージは、正確に書き起こした場合"fileSymbol"、以前は を使用していたファイル名として"D:\\TempFiles\\SymbolFile.xml".

注意createNewFile(): 同じファイルへの出力ストリームまたはライターを作成する前にこの行を呼び出すのは、完全に時間の無駄です。

于 2013-03-07T06:22:35.413 に答える