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

먼저, OpenCSV를 프로젝트에 추가해야 합니다. 다음은 Maven을 사용하는 경우 필요한 의존성을 추가하는 예입니다:

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

이제 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.List;

public class CSVRowCopyExample {
    public static void copyRowFromCSV(String sourceFilePath, String destinationFilePath, int rowNumber) {
        try (CSVReader reader = new CSVReader(new FileReader(sourceFilePath));
             CSVWriter writer = new CSVWriter(new FileWriter(destinationFilePath))) {
            
            List<String[]> rows = reader.readAll();
            String[] selectedRow = rows.get(rowNumber - 1);
            writer.writeNext(selectedRow);
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        // 특정 행을 복사할 CSV 파일 경로
        String sourceFilePath = "path/to/source.csv";

        // 복사한 행을 저장할 새로운 CSV 파일 경로
        String destinationFilePath = "path/to/destination.csv";

        // 복사할 행 번호
        int rowNumber = 2;

        copyRowFromCSV(sourceFilePath, destinationFilePath, rowNumber);
    }
}

위의 코드에서 sourceFilePath 변수에는 원본 CSV 파일의 경로를, destinationFilePath 변수에는 복사한 행을 저장할 새로운 CSV 파일의 경로를 지정해야 합니다. rowNumber 변수에는 복사할 행의 번호를 지정합니다. 이 예제에서는 2번째 행을 복사하고 있습니다.

위의 코드를 실행하면 원본 CSV 파일에서 특정 행을 읽어와 새로운 CSV 파일에 복사됩니다.