code: public Vector decode(final URL url) throws IOException {
      LineNumberReader reader;
      boolean isZipFile = url.getPath().toLowerCase().endsWith(".zip");
      InputStream inputStream;
      if (isZipFile) {
          inputStream = new ZipInputStream(url.openStream());
          //move stream to next entry so we can read it
          ((ZipInputStream)inputStream).getNextEntry();
      } else {
          inputStream = url.openStream();
      }
      if (owner != null) {
          reader = new LineNumberReader(
                  new InputStreamReader(
                          new ProgressMonitorInputStream(owner,
                                  "Loading " + url , inputStream), ENCODING));
      } else {
          reader = new LineNumberReader(new InputStreamReader(inputStream, ENCODING));
      }
  
      Vector v = new Vector();
  
      String line;
      Vector events;
      try {
          while ((line = reader.readLine()) != null) {
              StringBuffer buffer = new StringBuffer(line);
              for (int i = 0; i < 1000; i++) {
                  buffer.append(reader.readLine()).append("\n");
              }
              events = decodeEvents(buffer.toString());
              if (events != null) {
                  v.addAll(events);
              }
          }
      } finally {
        partialEvent = null;
        try {
          if (reader != null) {
            reader.close();
          }
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
      return v;
    }
docs: Decodes a File into a Vector of LoggingEvents.
  @param url the url of a file containing events to decode
  @return Vector of LoggingEvents
  @throws IOException if IO error during processing.