Du kanske inte inser det, men Java redan har alla verktyg den behöver för att hantera den gemensamma filkomprimering och förpackning ZIP -format inbyggt i som standard . Om du behöver skriva ett program som kan hantera zip-filer , till exempel en ny WinZip mördare , har Java all utrustning du behöver för att börja
Du behöver : .
ZIP -fil
1 .
Skapa ett Java -program . På den mest enkla , kan du göra detta genom att öppna en textredigerare, t. ex. Anteckningar, och omedelbart spara det med namnet " ZipReader . java . " Men om du har en Java Integrated Development Environment som Netbeans eller Eclipse , kan du spara lite tid genom att klicka på " Fil "-->" nytt projekt. "
2 .
Importera följande bibliotek från Java standard bibliotek som du behöver för att läsa zip -filer genom att klistra in följande längst upp i filen du just skapade i steg 1 .
import java. io. FileInputStream ;
import java. io. FileOutputStream ;
import java. util. zip. ZipEntry ;
import java . util. zip. ZipInputStream ,
3
Klistra in följande kod i programmet för att ge det dess grundläggande struktur :
. public class ZipExample {
public static void main ( String [ ] args ) {
try {
} catch ( Exception e) {
System. out. println ("Fel " ) ;
}
}
}
Alla resten av koden kommer att gå mellan " försök " och " fånga " uttalanden , som är utformade för att hantera eventuella fel som kan uppstå . .
4
Förbered några variabler att hålla data från zip -filen tillfälligt genom att klistra in följande kommandon i " prova " block av de främsta metod du skrev i steg 3 :
ZipEntry inresa ,
int buffer=1024 ;
int count=0 ;
byte [ ] data=new byte [ 1024 ] ;
ZipEntry kommer att hänvisa till varje fil i ZIP-arkiv i tur och ordning . Buffer är antalet byte som ska läsas från zip-filen på en gång, och 1. 024 är ganska vanligt nummer , men det spelar ingen roll vad du väljer . Syftet är helt enkelt att försäkra att hårddisken inte är överarbetad avläsa enstaka byte en efter en . Slutligen är att räkna kommer att hålla koll på hur många byte faktiskt läses från ZIP -fil i varje pass (eftersom det filstorleken är osannolikt att en multipel av 1024 . ) Detta är viktigt , eftersom du kommer att behöva veta hur mycket data skrivs till den nya filen i steg 6.
5 .
Öppna zip-filen . Detta är en process i två steg . Först måste du läsa zip -filen i en FileInputStream , och andra måste du konvertera det till en ZipInputStream . Klistra in följande kod för att åstadkomma detta :
FileInputStream file_input=new FileInputStream ( " Archive. zip " ) ;
ZipInputStream Zin=new ZipInputStream . ( file_input ) ;
6
Gå igenom ZIP-fil , klistras en post i taget och skriva som inträde till hårddisken , med följande kod , omedelbart efter den sista koden :
medan ( ( entry=zin. getNextEntry ( ) ) !=null ) {
FileOutputStream fut=new FileOutputStream ( entry. getName ( ) ) ;
medan ( ( count=Zin . ! läsa ( data , 0 , buffert) )=-1 ) {
fout. write ( data , 0 , räkna ) ,
}
fout. flush () ;
fout. close () ;
}
<. br > 7
Stäng zip-filen genom att klistra in följande direkt efter den sista koden :
zin. close () ;