code: @Override
      public void write(byte[] b, int off, int len) throws IOException {
          while (len > 0) {
              int c = Math.min(len, decoderIn.remaining());
              decoderIn.put(b, off, c);
              processInput(false);
              len -= c;
              off += c;
          }
          if (writeImmediately) {
              flushOutput();
          }
      }
docs: Write bytes from the specified byte array to the stream.
  
  @param b   the byte array containing the bytes to write
  @param off the start offset in the byte array
  @param len the number of bytes to write
  @throws IOException if an I/O error occurs