code: public void write(String s, int off, int len) throws IOException {
          synchronized (lock) {
              ensureOpen();
  
              int b = off, t = off + len;
              while (b < t) {
                  int d = min(nChars - nextChar, t - b);
                  s.getChars(b, b + d, cb, nextChar);
                  b += d;
                  nextChar += d;
                  if (nextChar >= nChars)
                      flushBuffer();
              }
          }
      }
docs: Writes a portion of a String.
  
  <p> If the value of the <tt>len</tt> parameter is negative then no
  characters are written.  This is contrary to the specification of this
  method in the {@linkplain java.io.Writer#write(java.lang.String,int,int)
  superclass}, which requires that an {@link IndexOutOfBoundsException} be
  thrown.
  
  @param  s     String to be written
  @param  off   Offset from which to start reading characters
  @param  len   Number of characters to be written
  
  @exception  IOException  If an I/O error occurs