code: public void write(byte b[], int off, int len) throws IOException {
          if ((off | len | (b.length - (len + off)) | (off + len)) < 0)
              throw new IndexOutOfBoundsException();
  
          for (int i = 0 ; i < len ; i++) {
              write(b[off + i]);
          }
      }
docs: Writes <code>len</code> bytes from the specified
  <code>byte</code> array starting at offset <code>off</code> to
  this output stream.
  <p>
  The <code>write</code> method of <code>FilterOutputStream</code>
  calls the <code>write</code> method of one argument on each
  <code>byte</code> to output.
  <p>
  Note that this method does not call the <code>write</code> method
  of its underlying input stream with the same arguments. Subclasses
  of <code>FilterOutputStream</code> should provide a more efficient
  implementation of this method.
  
  @param      b     the data.
  @param      off   the start offset in the data.
  @param      len   the number of bytes to write.
  @exception  IOException  if an I/O error occurs.
  @see        java.io.FilterOutputStream#write(int)