Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java로 임시 파일 생성하고 삭제하는 방법 완벽 가이드

단위 테스트(unit testing)나 특정 애플리케이션 로직을 처리할 때처럼, 프로그램 실행 중에 임시 파일을 생성해야 하는 경우가 종종 있습니다. Java에서는 java.io.File 클래스가 제공하는 메서드만으로 임시 파일을 손쉽게 만들고 삭제할 수 있습니다.

임시 파일 생성하기

Java의 File 클래스는 임시 파일을 생성하는 createTempFile() 메서드를 제공합니다. 이 메서드는 세 개의 매개변수를 받습니다.

  • prefix: 임시 파일의 접두사(파일 이름 시작 부분)
  • suffix: 임시 파일의 접미사(확장자)
  • directory: 파일을 생성할 디렉터리를 나타내는 File 객체(추상 경로)

이 메서드가 호출되면 지정한 접두사와 접미사 사이에 고유한 숫자가 자동으로 삽입되어, 같은 이름의 파일이 충돌하지 않도록 보장해 줍니다.

예제

다음 Java 예제는 D:/SampleDirectory 경로에 exampleTempFile5387153267019244721.txt 형태의 임시 파일을 생성합니다.

import java.io.File;
import java.io.IOException;
public class TempararyFiles {
    public static void main(String args[]) throws IOException {
        String prefix = "exampleTempFile";
        String suffix = ".txt";
        // 디렉터리를 위한 File 객체 생성
        File directoryPath = new File("D:/SampleDirectory");
        // 임시 파일 생성
        File.createTempFile(prefix, suffix, directoryPath);
        System.out.println("Temp file created.........");
    }
}

실행 결과

Temp file created.........

임시 파일 삭제하기

File 클래스는 현재 파일 또는 디렉터리를 삭제하는 delete() 메서드를 제공합니다. 임시 파일 객체에 대해 이 메서드를 호출하면 해당 파일이 시스템에서 제거됩니다.

예제

다음 Java 프로그램은 임시 파일을 생성한 뒤 바로 삭제하는 과정을 보여줍니다.

import java.io.File;
import java.io.IOException;
public class TempararyFiles {
    public static void main(String args[]) throws IOException {
        String prefix = "exampleTempFile";
        String suffix = ".txt";
        // 디렉터리를 위한 File 객체 생성
        File directoryPath = new File("D:/SampleDirectory");
        // 임시 파일 생성
        File tempFile = File.createTempFile(prefix, suffix, directoryPath);
        System.out.println("Temp file created: " + tempFile.getAbsolutePath());
        // 파일 삭제
        tempFile.delete();
        System.out.println("Temp file deleted.........");
    }
}

실행 결과

Temp file created: D:\SampleDirectory\exampleTempFile7179732984227266899.txt
Temp file deleted.........

참고: JVM 종료 시 자동 삭제

프로그램이 비정상적으로 종료되어 delete() 메서드가 호출되지 않는 상황에 대비하려면, deleteOnExit() 메서드를 함께 사용하는 것이 좋습니다. 이 메서드를 호출해 두면 JVM이 정상 종료될 때 해당 임시 파일이 자동으로 삭제됩니다.

tempFile.deleteOnExit(); // JVM 종료 시 자동 삭제

이처럼 Java의 File 클래스를 활용하면 임시 파일의 생성과 삭제를 간단하고 안전하게 처리할 수 있으며, 테스트 코드나 캐시 데이터 관리에 유용하게 사용할 수 있습니다.