English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Come comprimere e decomprimere i dati dei file in Java?

Java fornisce due classi, DeflaterOutputStream e InflaterInputStream, per comprimere e decomprimere i dati.

Comprimere un singolo file

Comprimere un singolo file-

  • Creare attraverso l'inserimento del percorso del file da compressare in formato String come parametro del costruttore per creareFileInputStreaml'oggetto.

  • Creare attraverso l'inserimento del percorso del file di output come parametro del costruttore per creareFileOutputStreaml'oggetto.

  • Creare attraverso l'inserimento dell'oggetto FileOutputStream creato in precedenza come parametro del costruttore per creareDeflaterOutputStreaml'oggetto.

  • Poi, leggere il contenuto del file di input e utilizzarewrite()Metodi della classe DeflaterOutputStream per la scrittura.

Esempio

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

Risultato di output

Il file è compresso.......-

Decomprimere il file compresso

Decomprimere il file compresso-

  • Creare attraverso l'inserimento del percorso del file compresso in formato String come parametro del costruttoreFileInputStreaml'oggetto.

  • Creare attraverso l'inserimento del percorso del file di output (file di immagine non compresso) in formato String come parametro del costruttoreFileOutputStreaml'oggetto.

  • creareInflaterInputStreamcreando l'oggetto come sopra descritto,FileOutputStreaml'oggetto, come parametro passato al suo costruttore.

  • poi, leggereInflaterInputStreamil contenuto dell'oggetto, utilizzandowrite()metodi della classe FileOutputStream per la scrittura.

Esempio

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.InflaterInputStream;
public class DeCompressingFiles {
   public static void main(String args[]) throws IOException {
      StringinputPath = "D:\\ExampleDirectory\\compressed.txt";
      //Istanziazione di FileInputStream-
      FileInputStream inputStream = new FileInputStream(inputPath);
      String outputpath = "D:\\ExampleDirectory\\output.jpg";
      FileOutputStream outputStream = new FileOutputStream(outputpath);
      InflaterInputStream decompresser = new InflaterInputStream(inputStream);
      int contents;
      while ((contents = decompresser.read()) != -1) {
         outputStream.write(contents);
      }
      //Chiudi il file
      outputStream.close();
      decompresser.close();
      System.out.println("File non-compresso......");
   }
}

Risultato di output

File non compresso......