[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 파일에 복사됩니다.