docs: @Override
      public int read( char[] cbuf, int off, int len ) throws IOException {
          assert len >= 0;
          assert off >= 0;
  
          int amountRead = 0;
          final int endIndex = off + len;
          for ( int index = off; index < endIndex; index++ ) {
              int readChar = read();
              if ( readChar == -1 ) {
                  break;
              }
  
              cbuf[ index ] = ( char ) readChar;
              amountRead++;
          }
  
          return amountRead == 0 ? -1 : amountRead;
      }