この質問は、this質問の重複した複製であることを知っています。 しかし、私はそのページ全体を2回、セクションを3回読んでいます。私の人生では、どう答えられているのかわかりません。Java 6ファイルの削除
だから、私の問題に。
私は仕事中で、Java 6 SEを使用していないため、7にアップグレードできません。ファイルを作成して書き込み、何らかの処理を行い、ファイルを削除する必要があるプログラムを作成しています。上記の質問に尋ねた人物とまったく同じ問題が発生しています.Javaはファイルを削除しないため、理由を特定できません。
コード:これは、任意のスロー可能オブジェクト、エラーまたは例外がスローされていない
File f = null;
FileWriter fw = null;
try
{
f = new File("myFile.txt");
fw = new FileWriter(f);
fw.write("This is a sentence that should appear in the file.");
fw.flush();
if(f.delete())
System.out.println("File was successfully deleted.");
else
System.err.println("File was not deleted.");
}
catch(Exception exc)
{
System.err.println(exc.getMessage());
}
catch(Error er {
System.err.println(er.getMessage());
}
catch(Throwable t)
{
System.err.println(t.getMessage());
}
finally
{
fw.close();
}
(Iは任意とすべてのエッジケースを除外するものを含みます)。 2番目の印刷ステートメント("File was not deleted."
)がコンソールに印刷されています。私はWindows 7でこれを実行しており、完全な権限(rwx)を持っているフォルダに書き込んでいます。
私が参照した質問をするユーザーは、自分の質問に答えましたが、私の謙虚な意見ではそう簡単ではありません。いずれにせよ、私はそれを理解することに問題があります。彼/彼女はBufferedReader
を使用してFileInputStream
と違っているということを暗示しているようですが、私はそれがどのように当てはまるのか分かりません。
Java 7はjava.nio.file.Files
クラスの導入でこの問題を修正したようですが、Java 7を使用することはできません。その参照先の質問に
他の回答者は、私はこれらのすべてを試してみましたが、彼らが働いていないなど、そのように明示的System.gc()
を呼び出すように、これはJavaで「バグ」であることをほのめかし、およびcircumventionsのすべての種類を与えます。
誰かが新しい視点を追加して、私のためにいくつかの考えをジョギングしているかもしれません。
私はこれが重複しているとは思わない。あなたが他の質問から提案された解決策を試しても助けにならなかったので、その原因が異なる可能性があります。 – finnw
最初に閉じます。そして... "Java 6を使用して立ち往生しましたか?"私はJDK7上で動作している単一の会社を知らない。私は1.4と1.5の多くを知っています。自分自身を幸運と考えてください。 –
あなたが言ったことは逆です:BufferedReaderの代わりにFileInputStreamを使用することは、他の投稿のユーザーのために働いたことです。なぜそれが当てはまるのかについては、そこにあるいくつかのコメントはJavaのバグを示唆しています。 –