[java] Apache Commons IO를 이용한 파일 필터링 및 마스킹 처리하기

Apache Commons IO는 자바에서 파일 및 디렉토리 조작을 쉽게 할 수 있는 유용한 라이브러리입니다. 이번 글에서는 Apache Commons IO를 사용하여 파일 필터링과 마스킹 처리하는 방법에 대해 알아보겠습니다.

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

먼저 Maven 또는 Gradle과 같은 빌드 도구를 사용하여 Apache Commons IO 라이브러리를 프로젝트에 추가해야 합니다. 다음은 Maven을 사용하는 경우의 의존성 설정 예시입니다.

<dependencies>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.10.0</version>
    </dependency>
</dependencies>

Gradle을 사용하는 경우, 다음과 같이 의존성을 추가할 수 있습니다.

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

2. 파일 필터링하기

Apache Commons IO를 사용하면 파일을 필터링하여 원하는 파일만 선택할 수 있습니다. 예를 들어, 특정 확장자를 가진 파일만 선택하거나, 파일의 크기나 수정 시간을 기준으로 필터링할 수 있습니다.

아래는 파일 확장자가 .txt인 파일만 선택하는 코드입니다.

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.SuffixFileFilter;
import java.io.File;
import java.util.Collection;

public class FileFilterExample {
    public static void main(String[] args) {
        File dir = new File("/path/to/directory");
        Collection<File> txtFiles = FileUtils.listFiles(dir, new SuffixFileFilter(".txt"), null);

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

위 코드에서 /path/to/directory는 필터링할 디렉토리 경로로 수정해야 합니다.

3. 파일 마스킹 처리하기

파일을 마스킹하여 사용자의 개인정보나 중요한 데이터를 보호할 수 있습니다. Apache Commons IO를 사용하면 파일의 내용을 읽어와서 마스킹 처리할 수 있습니다.

아래는 파일 내용을 마스킹하는 코드의 예시입니다.

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

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

        try {
            String fileContent = FileUtils.readFileToString(file, "UTF-8");
            String maskedContent = maskPersonalInfo(fileContent);
            FileUtils.writeStringToFile(file, maskedContent, "UTF-8");
            System.out.println("File content masked successfully!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static String maskPersonalInfo(String content) {
        // 개인정보 마스킹 처리 로직 작성
        // 예: 주민등록번호 마스킹하기
        return content.replaceAll("\\d{6}-\\d{7}", "******-*******");
    }
}

위 코드에서 /path/to/file.txt는 처리할 파일 경로로 수정해야 합니다. maskPersonalInfo 메서드는 개인정보를 마스킹하는 로직을 작성하면 됩니다. 위 예시에서는 주민등록번호를 마스킹하는 예제를 보여주었습니다.

마무리

이번 글에서는 Apache Commons IO를 사용하여 파일 필터링과 마스킹 처리하는 방법에 대해 알아보았습니다. Apache Commons IO는 다양한 파일 조작 기능을 제공하므로 개발 작업을 효율적으로 처리할 수 있습니다. 자세한 내용은 Apache Commons IO 공식 문서를 참고하시기 바랍니다.