**Use case**

For symmetry reasons, because it is already supported for input.

**Describe the solution you'd like**

The same as `TSVRaw`.
WriteBuffer & out_,
    const Block & header_,
    bool with_names_,
    bool with_types_,
    bool is_raw_,
    const RowOutputFormatParams & params_,
    const FormatSettings & format_settings_)
    : IRowOutputFormat(header_, out_, params_), with_names(with_names_), with_types(with_types_), is_raw(is_raw_), format_settings(format_settings_)
{
}
void TabSeparatedRowOutputFormat::writeLine(const std::vector<String> & values)
{
    for (size_t i = 0; i < values.size(); ++i)
    {
        if (is_raw)
            writeString(values[i], out);
        else
            writeEscapedString(values[i], out);
        if (i + 1 == values.size())
            writeRowEndDelimiter();
        else
            writeFieldDelimiter();
    }
}
void TabSeparatedRowOutputFormat::writePrefix()