public static <T> List<T> toList(Iterator<T> iterator) {
        List<T> res = new ArrayList<>();
        while (iterator.hasNext())
            res.add(iterator.next());
        return res;
    }
Write the contents of a buffer to an output stream. The bytes are copied from the current position
in the buffer.
@param out The output to write to
@param buffer The buffer to write from
@param length The number of bytes to write
@throws IOException For any errors writing to the output
clients/src/main/java/org/apache/kafka/common/utils/Utils.java