@Override
public void flush() throws IOException {
ByteArray bytes = buffer.toByteArray();
if (bytes.getLength() > 0) {
ByteArrayInputStream inputBytes = new ByteArrayInputStream(bytes.getRawBytes(), bytes.getOffset(),
bytes.getLength());
InputStreamReader reader = new InputStreamReader(inputBytes, charset);
StreamUtil.io(reader, writer, true, false);
writer.flush();