Hvordan lese Zip-filer med Java

Du kan ikke innse det, men Java har allerede alle de verktøyene den trenger for å håndtere felles filkomprimering og emballasje ZIP-format bygget rett i som standard. Hvis du trenger å skrive et program som er i stand til å håndtere ZIP-filer, for eksempel en ny WinZip killer, Java har alt utstyret du trenger for å komme i gang.

Bruksanvisning

1 Lag et Java-program. På det meste enkelt, kan du gjøre dette ved å åpne et tekstredigeringsprogram, for eksempel Notisblokk, og umiddelbart lagre det med navnet "ZipReader.java." Men hvis du har en Java Integrated Development Environment som NetBeans eller Eclipse, kan du spare litt tid ved å klikke på "File" - & gt; ". Nytt prosjekt"

2 Importere følgende biblioteker fra Java standard biblioteket som du må lese Zip-filer ved å lime inn følgende på toppen av filen du nettopp opprettet i trinn 1.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

3 Lim inn følgende kode i programmet for å gi den sin grunnstruktur:

public class ZipExample {

public static void main (String [] args) {
try {

} Catch (Exception e) {
System.out.println ( "FEIL");
}
}
}

Resten av koden skal gå mellom "prøve" og "fange" uttalelser, som er designet for å håndtere eventuelle feil som kan oppstå.

4 Forbered noen variabler å holde dataene fra zip-filen midlertidig ved å lime inn følgende kommandoer inn i "prøve" blokk med den viktigste metoden du skrev i trinn 3:

ZipEntry oppføring;
int BUFFER = 1024;
int teller = 0;
byte [] data = ny byte [1024];

ZipEntry vil referere til hver fil i ZIP arkiv i sving. Buffer er antall byte for å lese fra ZIP-fil om gangen, og 1024 er en ganske standard tall, men det spiller ingen rolle hva du velger. Hensikten er bare å sørge for at harddisken ikke er overarbeidet leser enkelte bytes én etter én. Endelig er tellingen kommer til å holde styr på hvor mange byte som faktisk leses fra ZIP-filen i hver passering (siden det filstørrelsen er usannsynlig å være et multiplum av 1024.) Dette er viktig, fordi du trenger å vite hvor mye data blir skrevet til ny fil i trinn 6.

5 Åpne ZIP-filen. Dette er en to-trinns prosess. Først må du lese zip-fil til en Fileinputstream, og andre må du konvertere dette til en ZipInputStream. Lim inn følgende kode for å oppnå dette:

Fileinput file_input = new Fileinputstream ( "archive.zip");
ZipInputStream zin = ny ZipInputStream (file_input);

6 Gå gjennom ZIP-fil, én oppføring om gangen og skrive at adgang til harddisken, med følgende kode, limes umiddelbart etter siste kode:

while ((entry = zin.getNextEntry ())! = null) {
Fileoutputstream Utfrekvens = new Fileoutputstream (entry.getName ());

while ((teller = zin.read (data, 0, buffer))! = -1) {
fout.write (data, 0, teller);
}

fout.flush ();
fout.close ();

}

7 Lukk ZIP-filen ved å lime inn følgende umiddelbart etter siste kode:

zin.close ();