[java] OpenCSV를 사용하여 CSV 파일에서 임의로 특정 열을 복사하는 방법은?

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

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

Gradle의 경우 build.gradle 파일에 다음 의존성을 추가합니다.

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

그런 다음, 아래와 같이 CSV 파일에서 특정 열을 복사하는 Java 코드를 작성할 수 있습니다.

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

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class CsvColumnCopyExample {
    public static void main(String[] args) {
        // 원본 CSV 파일 경로
        String sourceFilePath = "path/to/source/file.csv";
        // 복사된 CSV 파일 경로
        String destinationFilePath = "path/to/destination/file.csv";
        // 복사할 열의 인덱스 (0부터 시작)
        int columnIndexToCopy = 2;

        try (CSVReader reader = new CSVReader(new FileReader(sourceFilePath));
             CSVWriter writer = new CSVWriter(new FileWriter(destinationFilePath))) {

            String[] nextLine;
            while ((nextLine = reader.readNext()) != null) {
                // 복사할 열의 값을 읽어온 후, 복사된 CSV 파일에 씁니다.
                String[] copiedLine = {nextLine[columnIndexToCopy]};
                writer.writeNext(copiedLine);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 sourceFilePath에는 원본 CSV 파일의 경로를, destinationFilePath에는 복사된 CSV 파일의 경로를 설정해야 합니다. columnIndexToCopy는 복사할 열의 인덱스입니다. 0부터 시작하므로 첫 번째 열은 0, 두 번째 열은 1, 세 번째 열은 2로 설정합니다.

이 예제 코드를 실행하면 원본 CSV 파일에서 복사할 열의 값을 가지고 있는 복사된 CSV 파일이 생성됩니다.