[java] Java에서 Apache Commons IO 사용하기

Apache Commons IO는 파일 및 스트림 처리, 파일 필터링, 파일 관련 유틸리티 등 다양한 파일 및 IO 작업을 쉽게 처리할 수 있는 라이브러리입니다. 이 블로그 포스트에서는 Java에서 Apache Commons IO를 사용하는 방법을 알아보겠습니다.

1. Apache Commons IO 라이브러리 추가하기

먼저, Apache Commons IO를 사용하기 위해 프로젝트에 라이브러리를 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가합니다:

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.11.0</version>
</dependency>

Gradle을 사용하는 경우 build.gradle 파일에 다음 의존성을 추가합니다:

dependencies {
    implementation 'commons-io:commons-io:2.11.0'
}

라이브러리를 추가한 후에는 Java 코드에서 Apache Commons IO를 사용할 수 있게 됩니다.

2. 파일 복사하기

Apache Commons IO를 사용하여 파일을 복사하는 예제를 살펴보겠습니다. 다음은 소스 파일을 대상 경로로 복사하는 Java 코드입니다.

import org.apache.commons.io.FileUtils;

public class FileCopyExample {
    public static void main(String[] args) {
        String sourcePath = "/path/to/sourceFile.txt";
        String targetPath = "/path/to/targetFile.txt";

        try {
            FileUtils.copyFile(new File(sourcePath), new File(targetPath));
            System.out.println("파일이 성공적으로 복사되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 FileUtils.copyFile() 메소드를 사용하여 소스 파일을 대상 경로로 복사합니다. 예외 처리를 통해 복사 중 발생할 수 있는 오류를 처리할 수 있습니다.

3. 파일 필터링하기

Apache Commons IO를 사용하여 파일을 필터링하는 예제를 살펴보겠습니다. 다음은 특정 확장자를 가진 파일을 필터링하여 출력하는 Java 코드입니다.

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.FileFilterUtils;

import java.io.File;
import java.io.FileFilter;
import java.util.Collection;

public class FileFilterExample {
    public static void main(String[] args) {
        String directoryPath = "/path/to/directory";
        String fileExtension = "txt";

        File directory = new File(directoryPath);
        FileFilter fileFilter = FileFilterUtils.suffixFileFilter(fileExtension);
        Collection<File> filteredFiles = FileUtils.listFiles(directory, fileFilter, null);

        for (File file : filteredFiles) {
            System.out.println(file.getName());
        }
    }
}

위의 코드에서는 FileUtils.listFiles() 메소드를 사용하여 지정된 디렉토리에서 특정 확장자를 가진 파일을 필터링합니다. 필터링된 파일 목록은 Collection<File> 형태로 반환됩니다.

4. 파일 관련 유틸리티 사용하기

Apache Commons IO는 파일과 관련된 다양한 유틸리티 클래스를 제공합니다. 이러한 유틸리티 클래스를 사용하여 파일의 크기, 확장자, 수정 시간 등에 대한 정보를 쉽게 가져올 수 있습니다. 아래는 간단한 예제 코드입니다.

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;

public class FileUtilityExample {
    public static void main(String[] args) {
        String filePath = "/path/to/file.txt";

        File file = new File(filePath);

        System.out.println("파일 크기: " + FileUtils.byteCountToDisplaySize(file.length()));
        System.out.println("파일 확장자: " + FileUtils.getExtension(file.getName()));
        System.out.println("파일 수정 시간: " + FileUtils.getLastModified(file));

        try {
            boolean isWritable = FileUtils.isWritable(file);
            System.out.println("파일 쓰기 가능 여부: " + isWritable);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드는 FileUtils 클래스의 다양한 메소드를 사용하여 파일의 크기, 확장자, 수정 시간 및 쓰기 가능 여부에 대한 정보를 가져옵니다.

결론

이제 Java 프로젝트에서 Apache Commons IO를 사용하여 파일 및 IO 작업을 쉽게 처리할 수 있는 방법에 대해 알아보았습니다. Apache Commons IO는 간단한 API를 제공하여 복사, 필터링, 유틸리티 기능 등 다양한 파일 작업을 지원합니다. 자세한 내용은 Apache Commons IO 공식 웹사이트를 참조하시기 바랍니다.