Exemple #1
0
    public byte[] getNext() throws IOException {
      // System.err.println("getNext() called");
      if (LOG.isLoggable(Level.FINEST)) {
        LOG.finest("getNext() called");
      }
      int c;

      while ((c = inputStream.read()) != -1) {
        if (!(pattern == 2 && c == 3)) {
          next.write(c);

          if (pattern == 0 && c == 0) {
            pattern = 1;
          } else if (pattern == 1 && c == 0) {
            pattern = 2;
          } else if (pattern == 2 && c == 0) {
            byte[] s = next.toByteArrayLess3();
            next.reset();
            if (s != null) {
              return s;
            }
          } else if (pattern == 2 && c == 1) {
            byte[] s = next.toByteArrayLess3();
            next.reset();
            pattern = 0;
            if (s != null) {
              return s;
            }
          } else if (pattern != 0) {
            pattern = 0;
          }
        } else {
          pattern = 0;
        }
      }
      byte[] s = next.toByteArray();
      next.reset();
      if (s.length > 0) {
        return s;
      } else {
        return null;
      }
    }