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

OpenCSV는 Java에서 CSV 파일을 읽고 쓰기 위한 라이브러리입니다. OpenCSV를 사용하여 CSV 파일에서 원하는 행을 복사하는 방법에 대해 알아보겠습니다.

먼저, OpenCSV 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음과 같은 의존성을 추가할 수 있습니다.

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

다음은 CSV 파일에서 특정 행을 복사하는 Java 코드 예제입니다. 예를 들어, input.csv 파일에서 3번째 행을 복사하여 output.csv 파일에 쓰는 코드입니다.

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

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

public class CopySpecificRow {
    public static void main(String[] args) {
        String inputFile = "input.csv";
        String outputFile = "output.csv";
        int targetRowNumber = 3; // 복사할 행 번호

        try {
            CSVReader reader = new CSVReader(new FileReader(inputFile));
            List<String[]> rows = reader.readAll();
            reader.close();

            CSVWriter writer = new CSVWriter(new FileWriter(outputFile));
            String[] targetRow = rows.get(targetRowNumber - 1); // 0부터 시작하는 인덱스로 변환
            writer.writeNext(targetRow);
            writer.close();

            System.out.println("행 복사가 완료되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 코드에서 inputFile 변수에 원본 CSV 파일의 경로를, outputFile 변수에 복사된 CSV 파일의 경로를 설정합니다. targetRowNumber 변수에는 복사할 행의 번호를 지정합니다. 코드를 실행하면 지정한 행이 output.csv 파일에 복사되어 생성됩니다.

OpenCSV를 사용하여 CSV 파일에서 특정 행을 복사하는 방법에 대해 알아보았습니다. 이를 활용하여 다양한 CSV 파일 작업을 수행할 수 있습니다.