code: @Override
      public void write(byte[] bts, int st, int end) throws IOException {
          try {
              beforeWrite(end);
              out.write(bts, st, end);
              afterWrite(end);
          } catch (IOException e) {
              handleIOException(e);
          }
      }
docs: Invokes the delegate's <code>write(byte[])</code> method.
  
  @param bts the bytes to write
  @param st  The start offset
  @param end The number of bytes to write
  @throws java.io.IOException if an I/O error occurs