Java에서 임시 파일을 만드는 안전한 방법을 찾고 있습니다. 안전하다는 것은 다음을 의미합니다.
- 이름은 잠재적 인 경쟁 조건에서도 고유해야합니다 (예 : 다른 스레드가 동시에 동일한 기능을 호출하거나 다른 프로세스가이 코드를 동시에 실행).
- 잠재적 인 경쟁 조건에서도 파일은 비공개 여야합니다 (예 : 다른 사용자가 높은 속도로 파일을 chmod하려고 시도).
- 일반 삭제를 수행 할 필요없이 파일을 삭제하도록 지시 할 수 있으며 잘못된 파일을 삭제할 위험이 있습니다.
- 이상적으로는 예외가 발생하더라도 파일이 삭제되었는지 확인해야합니다.
- 파일의 기본값은 정상적인 위치 여야합니다 (예 : JVM에서 지정한 tmp dir, 기본값은 시스템 temp dir).
답변
File tempFile = File.createTempFile("prefix-", "-suffix");
//File tempFile = File.createTempFile("MyAppName-", ".tmp");
tempFile.deleteOnExit();
다음과 같이 임시 디렉토리에 파일을 생성합니다.
prefix-6340763779352094442- 접미사
답변
Java 7부터는 temnp 파일과 디렉토리를 생성하기위한 새로운 메소드를 포함하는 새로운 파일 API “NIO2″가 있습니다. 보다
예 :
Path tempDir = Files.createTempDirectory("tempfiles");
또는
Path tempFile = Files.createTempFile("tempfiles", ".tmp");
답변
String tempfilePath = System.getProperty("java.io.tmpdir");
tempfilePath = tempfilePath.concat("filename.extension");
접두사가 필요하지 않습니다.