Javaで一時ファイルを作成する安全な方法を探しています。安全とは、次のことを意味します。
- 潜在的な競合状態でも、名前は一意である必要があります(たとえば、別のスレッドが同じfuncを同時に呼び出すか、別のプロセスがこのコードを同時に実行します)。
- 潜在的な競合状態でも、ファイルはプライベートである必要があります(たとえば、別のユーザーがファイルを高速でchmodしようとした場合)
- 一般的な削除を行わなくても、ファイルを削除するように指示できます。間違ったファイルを削除する危険があります。
- 理想的には、例外がスローされても、ファイルを確実に削除する必要があります。
- ファイルはデフォルトで正しい場所に設定する必要があります(例:JVMが指定したtmp dir、デフォルトはシステムのtemp dir)
終了時に削除は、VMが例外で終了した場合、ファイルを削除しません。
—
ヨハネス
File f = File.createTempFile(prefix, extension)
ます。一時ディレクトリに配置されます。そして、f.deleteOnExit()
それは終了時に自動的に削除されます。