[java] OpenCSV를 사용하여 CSV 파일에서 임의로 중복된 데이터를 제거하는 방법은?

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

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

그 후, 다음과 같이 CSV 파일을 읽어서 중복된 데이터를 제거하는 코드를 작성할 수 있습니다:

import com.opencsv.CSVReader;
import com.opencsv.CSVWriter;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class RemoveDuplicateDataFromCSV {
    public static void main(String[] args) {
        String inputFile = "input.csv";
        String outputFile = "output.csv";

        try (CSVReader reader = new CSVReader(new FileReader(inputFile));
             CSVWriter writer = new CSVWriter(new FileWriter(outputFile))) {

            Set<String> uniqueData = new HashSet<>();
            List<String[]> lines = reader.readAll();

            for (String[] line : lines) {
                String data = line[0]; // CSV 파일에서 중복을 체크할 데이터 열을 선택합니다.

                if (!uniqueData.contains(data)) {
                    uniqueData.add(data);
                    writer.writeNext(line);
                }
            }

            writer.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 코드에서 input.csv는 입력 CSV 파일의 경로를, output.csv는 중복이 제거된 데이터를 저장할 출력 CSV 파일의 경로를 나타냅니다. 중복을 체크할 데이터 열은 String data = line[0]와 같이 선택합니다. 중복된 데이터를 제외한 나머지 데이터는 writer.writeNext(line) 메소드를 사용하여 출력 파일에 쓰입니다.

이 예시 코드를 실행하면, 입력 CSV 파일에서 중복된 데이터가 제거된 후의 결과를 포함하는 출력 CSV 파일이 생성됩니다.