private byte[] inflateInput(final byte[] zipinput,final int start){
  ByteArrayOutputStream stream;
  try {
    byte[] compressedInput=zipinput;
    Inflater decompresser=new Inflater();
    decompresser.setInput(compressedInput,start,compressedInput.length - start);
    byte[] output=new byte[1000];
    stream=new ByteArrayOutputStream();
    int cLength;
    do {
      cLength=decompresser.inflate(output);
      stream.write(output,0,cLength);
    }
 while (cLength == 1000);
  }
 catch (  DataFormatException e) {
    throw new RuntimeException(e);
  }
  return stream.toByteArray();
}

private byte [ ] inflateInput ( final byte [ ] zipinput , final int start ) { ByteArrayOutputStream stream ; try { byte [ ] compressedInput = zipinput ; Inflater decompresser = new Inflater ( ) ; decompresser . setInput ( compressedInput , start , compressedInput . length - start ) ; byte [ ] output = new byte [ 1000 ] ; stream = new ByteArrayOutputStream ( ) ; int cLength ; do { cLength = decompresser . inflate ( output ) ; stream . write ( output , 0 , cLength ) ; } while ( cLength == 1000 ) ; } catch ( DataFormatException e ) { throw new RuntimeException ( e ) ; } return stream . toByteArray ( ) ; }
inflates the zipped input .
