[java] OpenCSV를 사용하여 CSV 파일의 데이터를 임의로 압축하는 방법은?
OpenCSV는 자바에서 CSV 파일을 읽고 쓰기 위한 라이브러리입니다. CSV 파일에 대한 데이터를 압축하려면 OpenCSV와 java.util.zip 패키지의 GZIPOutputStream 클래스를 함께 사용할 수 있습니다.
다음은 OpenCSV와 GZIPOutputStream을 사용하여 CSV 파일 데이터를 압축하는 예제 코드입니다:
import com.opencsv.CSVReader;
import com.opencsv.CSVWriter;
import java.io.*;
import java.util.zip.GZIPOutputStream;
public class CSVCompressor {
private static final String INPUT_FILE_NAME = "input.csv";
private static final String OUTPUT_FILE_NAME = "output.csv.gz";
public static void main(String[] args) {
try {
// CSV 파일 읽기
CSVReader reader = new CSVReader(new FileReader(INPUT_FILE_NAME));
// GZIP 압축 파일 생성
FileOutputStream fileOutputStream = new FileOutputStream(OUTPUT_FILE_NAME);
GZIPOutputStream gzipOutputStream = new GZIPOutputStream(fileOutputStream);
Writer writer = new OutputStreamWriter(gzipOutputStream);
CSVWriter csvWriter = new CSVWriter(writer);
// CSV 파일 데이터 압축하여 쓰기
String[] nextLine;
while ((nextLine = reader.readNext()) != null) {
csvWriter.writeNext(nextLine);
}
// 리소스 정리
reader.close();
csvWriter.close();
System.out.println("CSV 파일 데이터를 성공적으로 압축하였습니다.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
위의 예제에서 INPUT_FILE_NAME
과 OUTPUT_FILE_NAME
변수를 원하는 파일의 경로로 변경해야 합니다.
이 코드에서는 OpenCSV를 사용하여 CSV 파일을 읽고, GZIPOutputStream으로 압축된 파일을 생성 및 쓰기합니다. CSV 파일의 각 라인은 writeNext()
메서드를 사용하여 압축된 파일로 씁니다.
위의 코드를 실행하면 output.csv.gz
라는 압축된 파일이 생성되고, 해당 파일을 통해 CSV 데이터에 접근할 수 있습니다.
이 예제 코드는 OpenCSV와 GZIPOutputStream을 사용하여 CSV 파일 데이터를 압축하는 방법을 보여줍니다. 추가로 필요한 기능이 있는 경우, OpenCSV와 GZIPOutputStream의 문서를 참조하여 코드를 수정해 나갈 수 있습니다.
참조:
- OpenCSV 문서: http://opencsv.sourceforge.net/
- GZIPOutputStream 문서: https://docs.oracle.com/javase/7/docs/api/java/util/zip/GZIPOutputStream.html