1. 개요

이 빠른 사용방법(예제)에서는 먼저 NIO FilesPath 클래스를 사용한 다음 Java FileFileOutputStream 클래스, Google Guava , 마지막으로 Apache Commons IO 라이브러리를 사용하여 Java에서 새 파일을 만드는 방법을 배웁니다 .

이 기사는 여기 Baeldung 의 "Java – Back to Basic" 시리즈의 일부입니다.

2. 설정

예제에서는 파일 이름에 대한 상수를 정의합니다.

private final String FILE_NAME = "src/test/resources/fileToCreate.txt";

또한 각 테스트 전에 파일이 존재하지 않는지 확인하고 각 테스트가 실행된 후에 파일을 삭제하는 정리 단계도 추가합니다.

@AfterEach
@BeforeEach
public void cleanUpFiles() {
    File targetFile = new File(FILE_NAME);
    targetFile.delete();
}

3. NIO Files.createFile() 사용하기

Java NIO 패키지 Files.createFile() 메서드사용하여 시작하겠습니다 .

@Test
public void givenUsingNio_whenCreatingFile_thenCorrect() throws IOException {
    Path newFilePath = Paths.get(FILE_NAME);
    Files.createFile(newFilePath);
}

보시다시피 코드는 여전히 매우 간단합니다. 우리는 이제 이전 File 대신 새로운 Path 인터페이스를 사용하고 있습니다.

여기서 주목해야 할 한 가지는 새로운 API가 예외를 잘 활용한다는 것입니다. 파일이 이미 존재하는 경우 더 이상 반환 코드를 확인할 필요가 없습니다. 대신 FileAlreadyExistsException이 발생합니다 .

java.nio.file.FileAlreadyExistsException: <code class="language-java">src/test/resources/fileToCreate.txt sun.nfWindowsException.translateToIOException(WindowsException.java:81)에서

4. 사용 File.createNewFile ()를

이제 java.io.File 클래스를 사용하여 동일한 작업을 수행하는 방법을 살펴보겠습니다 .

@Test
public void givenUsingFile_whenCreatingFile_thenCorrect() throws IOException {
    File newFile = new File(FILE_NAME);
    boolean success = newFile.createNewFile();
    assertTrue(success);
}

이 작업이 성공하려면 파일이 없어야 합니다. 파일이 존재하는 경우 createNewFile() 작업은 false를 반환합니다.

5. FileOutputStream 사용하기

새 파일을 만드는 또 다른 방법 java.io.FileOutputStream사용하는 것입니다 .

@Test
public void givenUsingFileOutputStream_whenCreatingFile_thenCorrect() throws IOException {
    try(FileOutputStream fileOutputStream = new FileOutputStream(FILE_NAME)){
    }
}

이 경우 FileOutputStream 객체를 인스턴스화할 때 새 파일이 생성됩니다 . 지정된 이름의 파일이 이미 존재하는 경우 덮어씁니다 . 그러나 기존 파일이 디렉토리이거나 어떤 이유로든 새 파일을 생성할 수 없는 경우 FileNotFoundException 이 발생 합니다.

또한 스트림이 제대로 닫혔는지 확인 하기 위해 try-with-resources을 사용했습니다 .

6. 구아바 사용하기

새 파일을 만들기 위한 Guava 솔루션도 한 줄로 빠르게 작성할 수 있습니다.

@Test
public void givenUsingGuava_whenCreatingFile_thenCorrect() throws IOException {
    com.google.common.io.Files.touch(new File(FILE_NAME));
}

7. 아파치 커먼즈 IO 사용하기

Apache Commons 라이브러리는 Linux 의 " touch " 유틸리티 와 동일한 동작을 구현 하는 FileUtils.touch() 메서드를 제공합니다 .

따라서 새로운 빈 파일 또는 파일과 파일 시스템의 전체 경로를 생성합니다.

@Test
public void givenUsingCommonsIo_whenCreatingFile_thenCorrect() throws IOException {
    FileUtils.touch(new File(FILE_NAME));
}

이것은 이전 예제와 약간 다르게 동작합니다. 파일이 이미 존재하는 경우 작업이 실패하지 않고 단순히 아무 것도 하지 않습니다.

Java로 새 파일을 만드는 4가지 빠른 방법이 있습니다.

8. 결론

이 기사에서는 Java로 파일을 생성하기 위한 다양한 솔루션을 살펴보았습니다. JDK 및 외부 라이브러리의 일부인 클래스를 사용했습니다.

예제에 대한 코드는 GitHub에서 사용할 수 있습니다 .

Generic footer banner