logo

Fájlok tömörítése és kicsomagolása Java nyelven

A DeflaterOutputStream és az InflaterInputStream osztályok Java nyelven érhetők el a fájl tartalmának tömörítésére és kibontására. Ezek az osztályok hasznos módszereket kínálnak a fájltartalom tömörítésére.

Fájl tömörítése a DeflaterOutputStream segítségével

legjobb hentai
Ez az osztály egy kimeneti adatfolyam-szűrőt valósít meg az adatok „deflate” tömörítési formátumban történő tömörítésére. Más típusú tömörítési szűrők, például a GZIPOutputStream alapjaként is szolgál. Fontos módszerek:
    void close() : A fennmaradó tömörített adatokat a kimeneti adatfolyamba írja, és bezárja az alapul szolgáló adatfolyamot. védett void deflate() :A következő tömörített adatblokkot írja a kimeneti adatfolyamba. érvénytelen befejezés() : Befejezi a tömörített adatok írását a kimeneti adatfolyamba az alapul szolgáló adatfolyam bezárása nélkül. void flush() : Kiüríti a tömörített kimeneti adatfolyamot. void write(byte[] b int off int len) :Egy bájttömböt ír a tömörített kimeneti adatfolyamba, ahol az off az adatok kezdeti eltolása, az len pedig a bájtok teljes száma. érvénytelen írás(b) :Egy bájtot ír a tömörített kimeneti adatfolyamba.
A fájl tömörítésének lépései (1. fájl)
  • Vigyen be egy „file 1” bemeneti fájlt a FileInputStreambe az adatok olvasásához.
  • Vegye ki a „file 2” kimeneti fájlt, és rendelje hozzá a FileOutputStream fájlhoz. Ez segít az adatok "file2"-be írásakor.
  • Az adatok tömörítéséhez rendelje hozzá a FileOutputStream-et a DeflaterOutputStream-hez.
  • Most olvassa el az adatokat a FileInputStreamből, és írja be a DeflaterOutputStreambe. Tömöríti az adatokat, és elküldi a FileOutputStream-nek, amely a tömörített adatokat a kimeneti fájlban tárolja.
Java
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.Deflater; import java.util.zip.DeflaterOutputStream; class zip {  public static void main(String[] args) throws IOException {  //Assign the original file : file to  //FileInputStream for reading data  FileInputStream fis=new FileInputStream('file1');  //Assign compressed file:file2 to FileOutputStream  FileOutputStream fos=new FileOutputStream('file2');  //Assign FileOutputStream to DeflaterOutputStream  DeflaterOutputStream dos=new DeflaterOutputStream(fos);  //read data from FileInputStream and write it into DeflaterOutputStream  int data;  while ((data=fis.read())!=-1)  {  dos.write(data);  }  //close the file  fis.close();  dos.close();  } } 

Fájl kicsomagolása az InflaterInputStream segítségével

Ez az osztály egy adatfolyamszűrőt valósít meg az adatok kitömörítésére a „deflate” tömörítési formátumban. Más dekompressziós szűrők, például a GZIPInputStream alapjaként is szolgál. Fontos módszerek:
    int elérhető() : Az EOF elérése után 0-t ad vissza, egyébként mindig 1-et ad vissza. void close() : Bezárja a bemeneti adatfolyamot, és felszabadítja az adatfolyamhoz kapcsolódó összes rendszererőforrást. védett üres kitöltés() : A bemeneti puffert több adattal tölti meg a kicsomagoláshoz. érvénytelen jel (int readlimit): Megjelöli az aktuális pozíciót a bemeneti adatfolyamban. logikai markSupported() : Ellenőrzi, hogy a bemeneti adatfolyam támogatja-e a jelölési és visszaállítási módszereket. int read() : Egy bájt tömörítetlen adatot olvas be. int read(byte[] b int off int len) : A kitömörített adatokat bájtok tömbjévé olvassa be a tömörített kimeneti adatfolyamba, ahol az off az adatok kezdeti eltolása, az len pedig a bájtok teljes száma. void reset() : Áthelyezi ezt az adatfolyamot arra a pozícióra, amikor a bemeneti adatfolyamon utoljára hívták a jelölési metódust.
A fájl kicsomagolásának lépései
  • A „file2” nevű fájl most tömörített adatokat tartalmaz, és ebből a fájlból kell beszereznünk az eredeti kicsomagolt adatokat.
  • Rendelje hozzá a tömörített „file2” fájlt a FileInputStreamhez. Ez segít az adatok beolvasásában a „file2”-ből.
  • Rendelje hozzá a „file3” kimeneti fájlt a FileOutputStream fájlhoz. Ez segít a tömörítetlen adatok "file3"-ba írásához.
  • Most olvassa be a tömörítetlen adatokat az InflaterInputStreamből, és írja be a FileOutputStreambe. Ez a tömörítetlen adatokat a „file3”-ba írja.
Java
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.InflaterInputStream; //Uncompressing a file using an InflaterInputStream class unzip {  public static void main(String[] args) throws IOException {  //assign Input File : file2 to FileInputStream for reading data  FileInputStream fis=new FileInputStream('file2');  //assign output file: file3 to FileOutputStream for reading the data  FileOutputStream fos=new FileOutputStream('file3');    //assign inflaterInputStream to FileInputStream for uncompressing the data  InflaterInputStream iis=new InflaterInputStream(fis);    //read data from inflaterInputStream and write it into FileOutputStream   int data;  while((data=iis.read())!=-1)  {  fos.write(data);  }    //close the files  fos.close();  iis.close();    } } 
  Kvíz létrehozása