/* Richard A. DeVenezia * SUGI 29 - "Greetings from the Edge" * www.devenezia.com/papers */ import java.io.*; import java.net.*; import java.util.*; import java.util.zip.*; import javax.swing.JOptionPane; public class ReadZippedFiles { ZipInputStream zis = null; Enumeration e = null; ZipEntry ze = null; boolean zeLoopStarted = false; boolean zerLoopStarted = false; boolean zerEndOfFile = false; BufferedReader zer; public String message; public ReadZippedFiles ( String aZipFile ) { URL url = null; InputStream is = null; try { url = new URL ( aZipFile ); is = url.openStream(); } catch (Exception e1) {} if (url == null) { try { is = new FileInputStream ( aZipFile ); } catch (IOException e2) {} } if (is == null) return; zis = new ZipInputStream ( is ); } public boolean getNextEntry () { if (zis != null) try { if (! zeLoopStarted) { ze = zis.getNextEntry(); zeLoopStarted = true; } else if (ze != null) { ze = zis.getNextEntry(); } if (ze == null) { zis.close(); } } catch (java.io.IOException ioe) { ze = null; } zerLoopStarted = false; zerEndOfFile = false; return (ze != null); } public String getEntryName () { if (ze != null) return ze.getName() ; else return ""; } public String readLine () { try { if (! zerLoopStarted) { zer = new BufferedReader ( new InputStreamReader ( zis ) ) ; zerLoopStarted = true; } String s = zer.readLine (); if (s == null) { zerEndOfFile = true; zis.closeEntry(); } return s; } catch (java.io.IOException ioe) { return ""; } } public boolean endOfEntry () { return zerEndOfFile; } public static void main ( String[] arg ) { ReadZippedFiles rzf = new ReadZippedFiles ("D:\\Webs\\devenezia.com\\webapps\\ROOT\\papers\\sugi-29\\examples\\alarms-2000.zip"); // ReadZippedFiles rzf = new ReadZippedFiles ("http://www.devenezia.com/papers/sugi-29/examples/alarms-2000.zip"); while (rzf.getNextEntry()) { System.out.println (rzf.getEntryName()); String s = rzf.readLine (); while (! rzf.endOfEntry()) { System.out.println (s); s = rzf.readLine (); } } System.out.println ("done."); } }