Java har inbyggt stöd för läsning och skrivning det populära Zip- arkiv format med hjälp av sin " java. util. zip " bibliotek . Med detta bibliotek kan du skapa dina egna zip -filer och läs från befintliga zip -filer , inklusive att skriva data från zip-filen till andra platser <. br > 1 .
Öppna din favorit text editor . Även en enkel redigerare , till exempel Windows Notepad kommer att göra , men du kanske föredrar att använda en mer kraftfull miljö , t. ex. Netbeans
2
Klistra in följande i din editor . . :
import java . io. BufferedOutputStream ;
import java. io. File ;
import java. io. FileOutputStream ;
import java. io. IOException ,
import java. io. InputStream ;
import java. util. Enumeration ;
import java. util. zip. ZipEntry ;
import java. util. zip. ZipFile ;
här importerar klasser från Java standard bibliotek som du behöver i programmet
<. br > 3
Klistra in följande skelett för klassen :
public class ZipClass {
statisk fil zipfil ,
statisk fil extractDir ;
statisk zipfil zFile ;
public static void unzipLoop ( ) kastar IOException {
}
public void extractEntry ( ZipEntry ze ) kastar IOException {
}
public static void main ( String [ ] args ) {
}
Resten av guiden kommer att innebära att fylla i koden från varje metod . .
4
Klistra in följande för att fylla i " unzipLoop " metod :
zFile=ny zipfil ( zipfil ) ;
zFile. entries () ;
för ( Enumeration e=zFile. entries () ; e. hasMoreElements ( ) ; ) {
ZipEntry ze=( ZipEntry ) e. nextElement () ;
extractEntry ( ze ) ,
}
Detta öppnar zip -filen och fortsätter genom alla filer och kataloger inuti det och kallar det " extractEntry " metod som är definierad i nästa steg . .
5
Klistra in följande för att fylla i " extractEntry " metod :
om ( zE. isDirectory () ) {
ny fil ( extractDir + File. separator + zE. getName () ) mkdir ( ) ; .
} else {
byte [ ] buffer=new byte [ 1024 ] ;
int längd ;
InputStream i=zFile. getInputStream ( ze ) ,
BufferedOutputStream ut=new BufferedOutputStream ( ny FileOutputStream ( extractDir + File. separator + Ze. getName ()));
medan ( ( längd=in. read ( buffert ) ) >=0 ) {
out. write ( buffert , 0 , längd ) ;
}
}
Detta test posten i zip arkiv för att se om det är en katalog eller en fil. Om en katalog skapas katalogen . Annars drar den data från zip -filen och skapar en fil i målkatalogen att representera den
6
Klistra in följande för att fylla i "main " -metoden . . :
zipfil=new File ( args [0 ] ) ;
extractDir=new File ( args [1 ] ) ;
försöka
{
unzipLoop () ;
} catch ( IOException e) {
System . out. println ( e. getMessage ());
}
Detta är den första metoden kallas av operativsystemet när programmet körs och det tar det första argumentet och förutsätter att det är zip-filen . Sedan är det andra argumentet antas vara extraktet katalogen . Slutligen börjar det unzipLoop metoden ( från steg 4) . Den hanterar även de fel som kan leda till , om zip-filen eller extraktion katalogen inte finns eller är skadad .
Previous:nothing Next:hur man får innehållet i en avlägsen webbsida med php