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

먼저, 압축할 파일과 압축된 파일의 경로를 지정해야 합니다. 그런 다음 ZipOutputStream을 사용하여 새로운 ZIP 파일을 생성하고, FileInputStream으로 파일을 읽어들여 ZipEntry로 생성한 후 ZipOutputStream에 써주면 됩니다.

아래는 파일을 압축하는 간단한 예제 코드입니다.

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

public class FileCompression {
    public static void main(String[] args) {
        try {
            String sourceFile = "example.txt";
            FileOutputStream fos = new FileOutputStream("compressed.zip");
            ZipOutputStream zipOut = new ZipOutputStream(fos);
            File fileToZip = new File(sourceFile);

            FileInputStream fis = new FileInputStream(fileToZip);
            ZipEntry zipEntry = new ZipEntry(fileToZip.getName());
            zipOut.putNextEntry(zipEntry);

            byte[] bytes = new byte[1024];
            int length;
            while ((length = fis.read(bytes)) >= 0) {
                zipOut.write(bytes, 0, length);
            }
            zipOut.close();
            fis.close();
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 코드는 example.txt 파일을 compressed.zip으로 압축하는 예제입니다. FileCompression 클래스를 실행하면 압축된 파일이 생성됩니다.

이 외에도 여러 가지 방법으로 파일을 압축할 수 있으며, 자바에서는 Apache Commons Compress라이브러리나 다른 라이브러리를 활용하여 더 강력한 기능을 제공하는 방법도 있습니다.