[java] 자바에서 텍스트 파일을 압축하는 방법

자바에서 텍스트 파일을 압축하려면 java.util.zip 패키지에서 제공하는 ZipOutputStream 클래스를 사용할 수 있습니다. 이 클래스를 사용하면 텍스트 파일을 압축하여 새로운 zip 파일을 생성할 수 있습니다.

다음은 자바에서 텍스트 파일을 압축하는 예제 코드입니다.

import java.io.*;
import java.util.zip.*;

public class FileCompressor {
    public static void main(String[] args) {
        String sourceFile = "example.txt";
        String compressedFile = "example.zip";
        
        try {
            // 파일 입력 스트림 생성
            FileInputStream fis = new FileInputStream(sourceFile);
            
            // 압축 스트림 생성
            FileOutputStream fos = new FileOutputStream(compressedFile);
            ZipOutputStream zipOut = new ZipOutputStream(fos);
            
            // 압축 파일 엔트리 생성
            ZipEntry zipEntry = new ZipEntry(sourceFile);
            zipOut.putNextEntry(zipEntry);
            
            // 버퍼 설정
            byte[] bytes = new byte[1024];
            int length;
            
            // 텍스트 파일 읽어서 압축 파일에 기록
            while ((length = fis.read(bytes)) >= 0) {
                zipOut.write(bytes, 0, length);
            }
            
            // 입출력 스트림 닫기
            fis.close();
            zipOut.close();
            fos.close();
            
            System.out.println("텍스트 파일이 성공적으로 압축되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드에서 sourceFile 변수에 압축할 텍스트 파일의 경로를, compressedFile 변수에 압축된 파일을 저장할 경로와 파일 이름을 지정합니다. 해당 경로에 압축된 zip 파일이 생성됩니다.

압축할 텍스트 파일을 읽고, ZipOutputStream을 사용하여 압축 파일을 생성하는 과정을 보여주고 있습니다. 필요한 경우 예외 처리를 추가하여 에러 상황을 처리할 수 있습니다.

이 예제 코드를 실행하면 텍스트 파일이 성공적으로 압축되었음을 확인할 수 있습니다.

참고 자료