code: public static InputStream skip(InputStream in, long size) throws IOException {
          DataInputStream di = new DataInputStream(in);
  
          while (size>0) {
              int chunk = (int)Math.min(SKIP_BUFFER.length,size);
              di.readFully(SKIP_BUFFER,0,chunk);
              size -= chunk;
          }
  
          return in;
      }
docs: Fully skips the specified size from the given input stream.
  
  <p>
  {@link InputStream#skip(long)} has two problems. One is that
  it doesn't let us reliably differentiate "hit EOF" case vs "inputstream just returning 0 since there's no data
  currently available at hand", and some subtypes (such as {@link FileInputStream#skip(long)} returning -1.
  
  <p>
  So to reliably skip just the N bytes, we'll actually read all those bytes.
  
  @since 1.349