Javaのjava.io.Fileクラスのdelete ()メソッドとdeleteOnExit()メソッドの違いは何ですか?
4 に答える
delete() は一度にファイルを削除しますが、deleteOnExit() はファイルを呼び出したときにファイルを削除しません。代わりに、プログラムが終了するか、より正確には仮想マシンが終了すると、ファイルが削除されます。
仮想マシンが定期的に終了しない場合、deleteOnExit() は効果がありません。
File.delete() メソッドはファイルを削除するか、削除に失敗した場合は例外をスローします。たとえば、ファイルが存在しない場合、NoSuchFileException がスローされます。ディレクトリを削除するには、ディレクトリが空である必要があります。このメソッドは、ファイルが正常に削除された場合は true を返し、それ以外の場合は false (読み取り/書き込み権限が原因である可能性があります) を返します。 この方法は、既知のファイルを直接削除する場合に使用されます。
File.deleteOnExit() このメソッドは、仮想マシンの終了時に抽象パス名で定義されたファイルまたはディレクトリを削除します。ファイルまたはディレクトリは、登録と逆の順序で削除されます。メソッドは値を返しません。 これは、プログラムの実行中に一時ファイルを生成するときに役立ちます。
Delete() returns boolean Deletes the file or directory denoted by this abstract pathname.
deleteOnExit() returns void Requests that the file or directory denoted by this abstract pathname be deleted when the virtual machine terminates.