[java] OpenCSV를 사용하여 CSV 파일의 데이터를 임의로 병합하는 방법은?

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

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

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

dependencies {
    implementation 'com.opencsv:opencsv:5.5.1'
}

이제 CSV 파일을 병합하는 코드를 작성해보겠습니다. 아래 예제는 두 개의 CSV 파일을 읽고, 데이터를 병합하여 새로운 CSV 파일을 생성하는 예제입니다.

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

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

public class CSVMerger {
    public static void main(String[] args) {
        String file1 = "file1.csv";
        String file2 = "file2.csv";
        String mergedFile = "merged.csv";

        mergeCSVFiles(file1, file2, mergedFile);
        System.out.println("CSV files merged successfully.");
    }

    public static void mergeCSVFiles(String file1, String file2, String mergedFile) {
        try {
            CSVReader reader1 = new CSVReader(new FileReader(file1));
            CSVReader reader2 = new CSVReader(new FileReader(file2));

            List<String[]> lines1 = reader1.readAll();
            List<String[]> lines2 = reader2.readAll();

            List<String[]> mergedLines = new ArrayList<>(lines1);
            mergedLines.addAll(lines2);

            CSVWriter writer = new CSVWriter(new FileWriter(mergedFile));
            writer.writeAll(mergedLines);

            reader1.close();
            reader2.close();
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 file1, file2, mergedFile 변수에 각각 병합 대상 파일의 경로와 병합 결과를 저장할 파일의 경로를 지정해야 합니다. 그리고 mergeCSVFiles 메서드를 호출하여 병합 작업을 수행합니다. 병합된 결과는 mergedFile에 저장됩니다.

위의 예제는 기본적인 CSV 파일 병합 방법을 보여주고 있습니다. 필요에 따라 OpenCSV의 다른 기능을 사용하여 병합 작업을 커스터마이즈할 수도 있습니다.

OpenCSV에 대한 더 자세한 정보와 사용법은 OpenCSV 공식 문서를 참고하세요.