[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 파일이 생성됩니다.