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

먼저, Maven 또는 Gradle을 사용하여 OpenCSV를 프로젝트에 추가해야 합니다. 그런 다음 다음 코드를 사용하여 특정 열을 삭제할 수 있습니다.

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 CSVColumnDeletion {

    public static void main(String[] args) {
        String filePath = "파일경로/파일명.csv";
        int columnToDelete = 2; // 삭제할 열의 인덱스 (0부터 시작)

        try {
            List<String[]> rows = new ArrayList<>();
            
            // CSV 파일 읽기
            CSVReader reader = new CSVReader(new FileReader(filePath));
            String[] nextLine;
            while ((nextLine = reader.readNext()) != null) {
                rows.add(nextLine);
            }
            reader.close();
            
            // 특정 열 삭제
            for (String[] row : rows) {
                if (row.length > columnToDelete) {
                    String[] newRow = new String[row.length - 1];
                    int j = 0;
                    for (int i = 0; i < row.length; i++) {
                        if (i != columnToDelete) {
                            newRow[j++] = row[i];
                        }
                    }
                    row = newRow;
                }
            }
            
            // 수정된 내용 저장
            CSVWriter writer = new CSVWriter(new FileWriter(filePath));
            writer.writeAll(rows);
            writer.close();
            
            System.out.println("CSV 파일에서 열이 삭제되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

이 코드는 지정된 파일 경로의 CSV 파일을 읽고, 특정 열을 삭제한 후 수정된 내용을 저장합니다. 열의 인덱스는 0부터 시작하므로, 2번 열을 삭제하려면 columnToDelete 변수를 2로 설정해야 합니다.

이 코드를 실행하면 선택한 열이 삭제된 CSV 파일이 생성됩니다.