[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 파일의 경로를 지정해야 합니다. 예를 들어, file1.csvfile2.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 CSVDataMerger {
    public static void main(String[] args) {
        String file1Path = "file1.csv";
        String file2Path = "file2.csv";
        String mergedFilePath = "merged.csv";

        try {
            List<String[]> file1Data = readCSV(file1Path);
            List<String[]> file2Data = readCSV(file2Path);

            List<String[]> mergedData = mergeCSVData(file1Data, file2Data);

            writeCSV(mergedData, mergedFilePath);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static List<String[]> readCSV(String filePath) throws IOException {
        List<String[]> data = new ArrayList<>();

        try (CSVReader csvReader = new CSVReader(new FileReader(filePath))) {
            String[] line;
            while ((line = csvReader.readNext()) != null) {
                data.add(line);
            }
        }

        return data;
    }

    private static void writeCSV(List<String[]> data, String filePath) throws IOException {
        try (CSVWriter csvWriter = new CSVWriter(new FileWriter(filePath))) {
            csvWriter.writeAll(data);
        }
    }

    private static List<String[]> mergeCSVData(List<String[]> data1, List<String[]> data2) {
        List<String[]> mergedData = new ArrayList<>(data1);
        mergedData.addAll(data2);

        return mergedData;
    }
}

위의 예제에서는 CSVDataMerger 클래스의 main 메서드에서 두 개의 CSV 파일을 읽고, mergeCSVData 메서드를 사용하여 데이터를 병합한 다음 merged.csv 파일로 쓰는 과정을 보여줍니다. readCSVwriteCSV 메서드는 각각 CSV 파일을 읽고 쓰는 유틸리티 메서드입니다. mergeCSVData 메서드는 두 개의 데이터 리스트를 병합하는 로직을 구현합니다.

위의 예제 코드를 실행하면, file1.csvfile2.csv의 데이터가 merged.csv 파일로 병합됩니다.

프로젝트에 OpenCSV 라이브러리를 추가하고, 위의 예제 코드를 사용하여 CSV 파일의 데이터를 병합할 수 있습니다.