Program Tip

Java에서 Temp 파일을 만드는 안전한 방법은 무엇입니까?

programtip 2020. 10. 29. 19:11
반응형

Java에서 Temp 파일을 만드는 안전한 방법은 무엇입니까?


Java에서 임시 파일을 만드는 안전한 방법을 찾고 있습니다. 안전하다는 것은 다음을 의미합니다.

  • 이름은 잠재적 인 경쟁 조건에서도 고유해야합니다 (예 : 다른 스레드가 동시에 동일한 기능을 호출하거나 다른 프로세스가이 코드를 동시에 실행).
  • 잠재적 인 경쟁 조건에서도 파일은 비공개 여야합니다 (예 : 다른 사용자가 높은 속도로 파일을 chmod하려고 시도).
  • 일반 삭제를 수행 할 필요없이 파일을 삭제하도록 지시 할 수 있으며 잘못된 파일을 삭제할 위험이 있습니다.
  • 이상적으로는 예외가 발생하더라도 파일이 삭제되었는지 확인해야합니다.
  • 파일의 기본값은 정상적인 위치 여야합니다 (예 : JVM에서 지정한 tmp dir, 기본값은 시스템 temp dir).

사용 File.createTempFile().

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");

참고 URL : https://stackoverflow.com/questions/26860167/what-is-a-safe-way-to-create-a-temp-file-in-java

반응형