docs: @Override
      public final String readUTF() throws IOException {
          int charCount = readInt();
          if (charCount == NULL_ARRAY_LENGTH) {
              return null;
          }
          if (charBuffer == null || charCount > charBuffer.length) {
              charBuffer = new char[charCount];
          }
          byte b;
          for (int i = 0; i < charCount; i++) {
              b = readByte();
              if (b < 0) {
                  charBuffer[i] = Bits.readUtf8Char(this, b);
              } else {
                  charBuffer[i] = (char) b;
              }
          }
          return new String(charBuffer, 0, charCount);
      }