[java] OpenCSV를 사용하여 CSV 파일에서 임의로 특정 열을 복사하는 방법은?
먼저, Maven 또는 Gradle을 사용하여 OpenCSV를 프로젝트에 추가해야 합니다. Maven의 경우 pom.xml
파일에 다음 의존성을 추가합니다.
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.2</version>
</dependency>
Gradle의 경우 build.gradle
파일에 다음 의존성을 추가합니다.
dependencies {
implementation 'com.opencsv:opencsv:5.2'
}
그런 다음, 아래와 같이 CSV 파일에서 특정 열을 복사하는 Java 코드를 작성할 수 있습니다.
import com.opencsv.CSVReader;
import com.opencsv.CSVWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CsvColumnCopyExample {
public static void main(String[] args) {
// 원본 CSV 파일 경로
String sourceFilePath = "path/to/source/file.csv";
// 복사된 CSV 파일 경로
String destinationFilePath = "path/to/destination/file.csv";
// 복사할 열의 인덱스 (0부터 시작)
int columnIndexToCopy = 2;
try (CSVReader reader = new CSVReader(new FileReader(sourceFilePath));
CSVWriter writer = new CSVWriter(new FileWriter(destinationFilePath))) {
String[] nextLine;
while ((nextLine = reader.readNext()) != null) {
// 복사할 열의 값을 읽어온 후, 복사된 CSV 파일에 씁니다.
String[] copiedLine = {nextLine[columnIndexToCopy]};
writer.writeNext(copiedLine);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
위의 코드에서 sourceFilePath
에는 원본 CSV 파일의 경로를, destinationFilePath
에는 복사된 CSV 파일의 경로를 설정해야 합니다. columnIndexToCopy
는 복사할 열의 인덱스입니다. 0부터 시작하므로 첫 번째 열은 0, 두 번째 열은 1, 세 번째 열은 2로 설정합니다.
이 예제 코드를 실행하면 원본 CSV 파일에서 복사할 열의 값을 가지고 있는 복사된 CSV 파일이 생성됩니다.