CSV 파일은 데이터를 쉼표(,)로 구분하여 저장하는 파일 형식입니다. 피벗이란 데이터를 가로와 세로로 변경하는 작업을 말합니다. OpenCSV는 Java에서 CSV 파일을 쉽게 처리할 수 있는 라이브러리입니다. 이번 포스트에서는 OpenCSV를 사용하여 CSV 파일의 데이터를 피벗하는 방법을 알아보겠습니다.
1. OpenCSV 라이브러리 추가
먼저 프로젝트에 OpenCSV 라이브러리를 추가해야 합니다. 아래의 Maven 의존성을 pom.xml
파일에 추가합니다.
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.5.2</version>
</dependency>
2. CSV 파일 읽기
다음으로는 CSV 파일을 읽어와야 합니다. OpenCSV의 CSVReader
클래스를 사용하여 파일을 읽을 수 있습니다. 아래는 파일을 읽고 이를 이차원 배열로 저장하는 예제입니다.
import com.opencsv.CSVReader;
try (CSVReader reader = new CSVReader(new FileReader("data.csv"))) {
List<String[]> lines = reader.readAll();
String[][] data = lines.toArray(new String[0][0]);
// 파일 데이터를 이차원 배열로 저장
} catch (IOException e) {
e.printStackTrace();
}
3. 데이터 피벗
CSV 파일의 데이터를 피벗하기 위해 이차원 배열을 가공해야 합니다. 아래는 데이터를 피벗하는 예제입니다.
int rowCount = data.length;
int colCount = data[0].length;
List<String[]> pivotedData = new ArrayList<>();
for (int i = 0; i < colCount; i++) {
String[] newRow = new String[rowCount];
for (int j = 0; j < rowCount; j++) {
newRow[j] = data[j][i];
}
pivotedData.add(newRow);
}
String[][] pivotedDataArray = pivotedData.toArray(new String[0][0]);
위의 코드는 열과 행을 교체하여 피벗된 데이터를 얻는 방법입니다. pivotedDataArray
변수에 피벗된 데이터가 저장됩니다.
4. 피벗된 데이터 쓰기
피벗된 데이터를 필요에 맞게 가공한 후, 다시 CSV 파일로 저장할 수 있습니다. 예를 들어, CSVWriter
클래스를 사용하여 피벗된 데이터를 새로운 CSV 파일에 쓸 수 있습니다.
import com.opencsv.CSVWriter;
try (CSVWriter writer = new CSVWriter(new FileWriter("pivoted_data.csv"))) {
for (String[] row : pivotedDataArray) {
writer.writeNext(row);
}
} catch (IOException e) {
e.printStackTrace();
}
위의 코드는 pivotedDataArray
배열을 이용하여 새로운 CSV 파일에 데이터를 씁니다. 파일 이름은 “pivoted_data.csv”로 지정하였습니다.
마무리
이제 OpenCSV를 사용하여 CSV 파일의 데이터를 피벗하는 방법을 알아보았습니다. OpenCSV는 다양한 CSV 파일 작업에 유용한 기능을 제공하므로, 필요한 경우 다양한 기능을 활용해보세요.