1

メソッドで作成された一時ファイルが、メソッドが戻るまでに削除されるようにする方法を見つけようとしています。を試してみfile.deleteOnExit();ましたが、それはメソッドではなく、プログラムが停止したときのためのものです。tryandfinallyブロックも試しました。finallyこれを達成する唯一の方法はブロックを使用することですか?

public String example(File file) {
    // do some random processing to the file here
    file.canWrite();
    InputStream() is = new FileInputStread(file);
    // when we are ready to return, use the try finally block
    try {
        return file.getName();
    } finally {
        is.close();
        file.delete();
    }
}

見た目が悪いと思います。誰にも提案がありますか?

4

4 に答える 4

3

まあ、それfinallyが目的です。

もちろん、Java7 では、AutoCloseable代わりに削除を行う実装を作成し、代わりに try-with-resources を使用できます。

于 2013-08-28T13:41:51.960 に答える
2

Java 7 を使用している場合は、java.lang.AutoCloseable インターフェイスを使用してこれを実現できます。詳細はこちらhttp://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html

そうでない場合は、最後に、リソースを閉じたりクリーニングしたりするための最善かつ広く使用されているアプローチです。

于 2013-08-28T13:44:45.267 に答える
0

メソッドの最後 (最後の行) でファイルを削除してみてはいかがでしょうか。私が正しく理解している場合、これはメソッドが終了する直前にファイルを削除しますか?

File file = new File("file.txt");
file.delete();
于 2013-08-28T13:50:18.563 に答える