[java] OpenCSV를 사용하여 CSV 파일의 데이터를 임의로 병합하는 방법은?
우선, OpenCSV 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml
파일에 다음 의존성을 추가하세요:
<dependencies>
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.5.1</version>
</dependency>
</dependencies>
Gradle을 사용한다면, build.gradle
파일에 다음 종속성을 추가하세요:
dependencies {
implementation 'com.opencsv:opencsv:5.5.1'
}
이제 병합할 CSV 파일의 경로를 지정해야 합니다. 예를 들어, file1.csv
와 file2.csv
파일을 병합하려면 다음과 같이 작성할 수 있습니다:
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 CSVDataMerger {
public static void main(String[] args) {
String file1Path = "file1.csv";
String file2Path = "file2.csv";
String mergedFilePath = "merged.csv";
try {
List<String[]> file1Data = readCSV(file1Path);
List<String[]> file2Data = readCSV(file2Path);
List<String[]> mergedData = mergeCSVData(file1Data, file2Data);
writeCSV(mergedData, mergedFilePath);
} catch (IOException e) {
e.printStackTrace();
}
}
private static List<String[]> readCSV(String filePath) throws IOException {
List<String[]> data = new ArrayList<>();
try (CSVReader csvReader = new CSVReader(new FileReader(filePath))) {
String[] line;
while ((line = csvReader.readNext()) != null) {
data.add(line);
}
}
return data;
}
private static void writeCSV(List<String[]> data, String filePath) throws IOException {
try (CSVWriter csvWriter = new CSVWriter(new FileWriter(filePath))) {
csvWriter.writeAll(data);
}
}
private static List<String[]> mergeCSVData(List<String[]> data1, List<String[]> data2) {
List<String[]> mergedData = new ArrayList<>(data1);
mergedData.addAll(data2);
return mergedData;
}
}
위의 예제에서는 CSVDataMerger
클래스의 main
메서드에서 두 개의 CSV 파일을 읽고, mergeCSVData
메서드를 사용하여 데이터를 병합한 다음 merged.csv
파일로 쓰는 과정을 보여줍니다. readCSV
와 writeCSV
메서드는 각각 CSV 파일을 읽고 쓰는 유틸리티 메서드입니다. mergeCSVData
메서드는 두 개의 데이터 리스트를 병합하는 로직을 구현합니다.
위의 예제 코드를 실행하면, file1.csv
와 file2.csv
의 데이터가 merged.csv
파일로 병합됩니다.
프로젝트에 OpenCSV 라이브러리를 추가하고, 위의 예제 코드를 사용하여 CSV 파일의 데이터를 병합할 수 있습니다.