[java] OpenCSV를 사용하여 CSV 파일의 데이터를 필터링하는 방법은?

OpenCSV 라이브러리란?

OpenCSV는 Java로 CSV 파일을 읽고 쓰기 위한 라이브러리입니다. 이 라이브러리를 사용하면 CSV 파일의 데이터를 쉽게 파싱하고, 데이터를 필터링하거나 가공하는데 유용하게 사용할 수 있습니다.

OpenCSV 라이브러리 추가하기

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

<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>5.5.1</version>
</dependency>

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

implementation 'com.opencsv:opencsv:5.5.1'

CSV 파일 필터링하기

다음은 OpenCSV를 사용하여 CSV 파일의 데이터를 필터링하는 예제 코드입니다:

import com.opencsv.CSVReader;

import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class CSVFilteringExample {
    public static void main(String[] args) {
        String csvFilePath = "path/to/your/csv/file.csv";
        String filterColumn = "name";
        String filterValue = "John";

        try (CSVReader reader = new CSVReader(new FileReader(csvFilePath))) {
            String[] header = reader.readNext(); // CSV 파일의 헤더를 읽음
            int filterColumnIndex = -1;
            List<String[]> filteredData = new ArrayList<>();

            // 필터링할 열의 인덱스 찾기
            for (int i = 0; i < header.length; i++) {
                if (header[i].equals(filterColumn)) {
                    filterColumnIndex = i;
                    break;
                }
            }

            // 데이터 필터링
            String[] line;
            while ((line = reader.readNext()) != null) {
                if (line.length > filterColumnIndex && line[filterColumnIndex].equals(filterValue)) {
                    filteredData.add(line);
                }
            }

            // 필터링된 데이터 출력
            for (String[] data : filteredData) {
                for (String value : data) {
                    System.out.print(value + "\t");
                }
                System.out.println();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 예제 코드에서는 csvFilePath 변수에 필터링할 CSV 파일의 경로를 지정합니다. 그리고 filterColumn 변수에는 필터링할 열의 이름을, filterValue 변수에는 필터링할 값을 지정합니다. 예제 코드는 해당 열에서 필터링된 값과 일치하는 데이터를 필터링하여 출력합니다.

이제 위의 예제 코드를 사용하여 OpenCSV를 통해 CSV 파일의 데이터를 필터링할 수 있습니다.

마치며

이번 포스트에서는 Java에서 OpenCSV를 사용하여 CSV 파일의 데이터를 필터링하는 방법에 대해 알아보았습니다. OpenCSV는 간편한 API를 제공하므로, CSV 파일 작업이 필요한 프로젝트에서 유용하게 사용될 수 있습니다. OpenCSV 문서 및 예제 코드를 참고하여 더 다양한 기능을 활용해보세요.

참고 자료