Du kan ikke innse det , men Java allerede har alle verktøyene den trenger for å håndtere den felles filen komprimering og pakking 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, har Java alt utstyret du trenger for å komme i gang. Du trenger
ZIP -fil
Vis flere instruksjoner
en
Lag et Java- program . På det meste enkelt, kan du gjøre dette ved å åpne en tekst editor , 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 " - " . New Project" >
2
Importer 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 følgende kode i programmet for å gi den sin grunnstruktur : en
public class ZipExample {
public static void main ( String [] args ) {
try {
} catch ( Exception e ) {
System.out.println ( " ERROR ");
}
}
}
Alle resten av koden skal gå mellom " prøve" og " fange " utsagn , som er designet for å håndtere eventuelle feil som kan oppstå .
4
Forbered noen variabler å holde data fra zip filen midlertidig ved å lime inn følgende kommandoer inn i " prøve" blokk av den viktigste metoden du skrev i trinn 3 : en
ZipEntry innreise,
int BUFFER = 1024 ;
int teller = 0;
byte [ ] data = new 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 ganske enkelt å sørge for at harddisken ikke er overarbeidet leser enkelte bytes én etter én. Endelig er greven kommer til å holde styr på hvor mange byte er lest av på 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 den nye filen i trinn 6 .
5
Åpne ZIP -filen. Dette er en to - trinns prosess . Først må du lese zip -filen til en FileInputStream , og andre må du konvertere dette til et ZipInputStream . Lim inn følgende kode for å oppnå dette : en
FileInputStream file_input = new FileInputStream ( " Archive.zip ");
ZipInputStream zin = new ZipInputStream ( file_input ) ;
6 < p > Gå gjennom ZIP -fil , én oppføring om gangen og skrive at adgang til harddisken , med følgende kode , limes rett etter den siste koden : en
while ( ( entry = zin.getNextEntry ( ) ) = null ) {
FileOutputStream fout = 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 ();