Bir Zip Dosyasındaki Dosyaların İsimlerini Ekrana Basan Program
Giriş
Bu örnekte bir zip dosyasının içinde bulunan dosyaların isimlerini standard ekrana basıyoruz. Bu örnek bir zip dosyası içindeki bilgiye nasıl erişilebileceği de gösterir.
Zip dosyasının path'ini dışarıdan(komut satırından) alıyoruz. Path'i aldıktan sonra dumpFileNames() method'unu çağırıyoruz. Bu method verilen path'teki zip dosyasını bulur, içindeki dosyaların isimlerini ekrana basar. Önce zip dosyası için bir FileInputStream açılır. Bu stream ZipInputStream class'ının kurucusuna verilir. Böylece zip dosyasının içeriği ZipInputStream nesnesinden alınabilir.
ZipInputStream class'ında her dosya ZipEntry nesnelerine karşılık gelir. Bizdosyaların içindeki dosyalara erişmek için sırayla ZipEntry'leri elde etmemiz gerekir. Bunun için ZipInputStream class'ında getNextEntry() method'u bulunmaktadır. Bu method her dosya için bir stream açar. Bu ZipEntry nesnesinin adından dosyanın adı elde edilebilir. getName() methodu ile dosyanın adı alınır. Eğer tüm ZipEntry'ler biterse getNextEntry() method'u null döndüreceğinden döngüden çıkılır.
En son açılmış olan stream'ler kapatılmalıdır. Hem ZipInputStream için bir stream, hem de her ZipEntry için bir stream açıldığında tüm bu stream'ler kapatılmalıdır. ZipEntry stream'leri closeEntry() method'u ile, ZipInputStream için close() method'u ile kapatılırlar.