[java] OpenCSV를 사용하여 CSV 파일에서 특정 열을 복사하는 방법은?
먼저, Maven 등의 의존성 관리 도구를 사용하여 OpenCSV를 프로젝트에 추가해야 합니다. 다음은 Maven을 사용하는 경우 pom.xml 파일에 추가하는 내용입니다:
<dependencies>
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.4</version>
</dependency>
</dependencies>
이제 Java 코드에서 CSV 파일을 읽고 특정 열을 복사하는 방법을 살펴보겠습니다. 예를 들어, “input.csv” 파일에서 “name” 열을 복사하여 “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 CsvColumnCopyExample {
public static void main(String[] args) {
String inputFile = "input.csv";
String outputFile = "output.csv";
int columnIndexToCopy = 1; // 0부터 시작하는 열의 인덱스
try {
// CSV 파일 읽기
CSVReader reader = new CSVReader(new FileReader(inputFile));
List<String[]> rows = reader.readAll();
reader.close();
// 특정 열 복사하여 새로운 리스트에 저장
List<String[]> copiedRows = new ArrayList<>();
for (String[] row : rows) {
if (row.length > columnIndexToCopy) {
String valueToCopy = row[columnIndexToCopy];
String[] newRow = new String[]{valueToCopy};
copiedRows.add(newRow);
}
}
// 새로운 CSV 파일 쓰기
CSVWriter writer = new CSVWriter(new FileWriter(outputFile));
writer.writeAll(copiedRows);
writer.close();
System.out.println("특정 열이 복사되었습니다.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
위의 코드에서 input.csv
파일의 name
열(인덱스 1)을 복사하여 output.csv
파일에 저장합니다. 복사할 열의 인덱스를 조정하여 다른 열을 복사할 수 있습니다.
이렇게 OpenCSV를 사용하여 CSV 파일에서 특정 열을 복사하는 방법을 알아보았습니다. OpenCSV의 다양한 기능을 활용하여 CSV 파일을 처리할 수 있습니다. OpenCSV 문서를 참조하여 더 많은 기능을 알아보시기 바랍니다.