Tôi đang tìm một cách an toàn để tạo tệp tạm thời trong Java. An toàn, ý tôi là như sau:
- Tên phải là duy nhất, ngay cả trong các điều kiện chủng tộc tiềm năng (ví dụ: một Chủ đề khác gọi cùng một func cùng một lúc hoặc một quy trình khác chạy mã này đồng thời)
- Tệp phải ở chế độ riêng tư, ngay cả trong các điều kiện chủng tộc tiềm năng (ví dụ: một người dùng khác cố gắng chmod tệp ở tốc độ cao)
- Tôi có thể yêu cầu nó xóa tệp mà tôi không cần phải xóa chung chung và có nguy cơ xóa nhầm tệp
- Tốt nhất, nên đảm bảo rằng tệp đã bị xóa, ngay cả khi ngoại lệ được ném ra trước khi tôi có cơ hội
- Tệp phải được đặt mặc định thành một vị trí lành mạnh (ví dụ: dir tmp được chỉ định JVM, mặc định là dir tạm thời của hệ thống)
File f = File.createTempFile(prefix, extension)
. Nó sẽ được đặt trong dir tạm thời. Và cùng vớif.deleteOnExit()
nó sẽ tự động bị xóa khi thoát.