public String readString(int byteLength, Charset charset) throws IOException {
        if (byteLength < 1) {
            return "";
        }

        return readBuffer(byteLength).asString(charset);
    }
Reads binary string from the input stream. When {@code byteLength} is zero or
negative number, this method will always return empty string.

@param byteLength length in byte
@param charset    charset, null is treated as {@link StandardCharsets#UTF_8}
@return non-null string
@throws IOException when failed to read value from input stream, not able to
                    retrieve all bytes, or reached end of the stream
clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseInputStream.java