Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 파일을 압축하는 방법은 무엇입니까?

<시간/>

Java의 DeflaterOutputStream 클래스는 주어진 데이터를 압축하고 대상으로 스트리밍하는 데 사용됩니다.

이 클래스의 write() 메서드는 데이터(정수 및 바이트 형식)를 받아 압축하고 현재 DeflaterOutputStream 객체의 대상에 씁니다. 이 방법을 사용하여 파일을 압축하려면 &Minus;

  • FileInputStream 만들기 String 형식으로 압축할 파일의 경로를 생성자에 매개변수로 전달하여 객체를 생성합니다.
  • FileOutputStream 만들기 생성자에 대한 매개변수로 String 형식의 출력 파일 경로를 전달하여 객체를 생성합니다.
  • DeflaterOutputStream 생성 위에서 만든 FileOutputStream을 전달하여 개체 객체를 생성자에 대한 매개변수로 사용합니다.
  • 그런 다음 입력 파일의 내용을 읽고 DeflaterOutputStream 클래스의 write() 메서드를 사용하여 작성합니다.

예시

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.DeflaterOutputStream;
public class CompressingFiles {
   public static void main(String args[]) throws IOException {
      //Instantiating the FileInputStream
      String inputPath = "D:\\ExampleDirectory\\logo.jpg";
      FileInputStream inputStream = new FileInputStream(inputPath);
      //Instantiating the FileOutputStream
      String outputPath = "D:\\ExampleDirectory\\compressedLogo.txt";
      FileOutputStream outputStream = new FileOutputStream(outputPath);
      //Instantiating the DeflaterOutputStream
      DeflaterOutputStream compresser = new DeflaterOutputStream(outputStream);
      int contents;
      while ((contents=inputStream.read())!=-1){
         compresser.write(contents);
      }
      compresser.close();
      System.out.println("File compressed.......");
   }
}

출력

File compressed.......