Jackson csv writer 没有使用正确的列分隔符

Ozz*_*zie 5 java jackson

我正在尝试使用 Jackson 2.2.2(尤其是 jackson-dataformat-csv)编写一个 CSV 文件,但我无法让它使用 ';' 作为文件分隔符。

我正在使用以下代码来初始化编写器:

CsvMapper mapper = new CsvMapper();
CsvSchema schema = mapper.schemaFor(MyObject.class);
schema = schema.withColumnSeparator(CSV_COLUMN_SEPARATOR);

ObjectWriter myObjectWriter = mapper.writer(schema);
Run Code Online (Sandbox Code Playgroud)

要创建 csv,我会执行以下操作:

FileOutputStream tempFileOutputStream = new FileOutputStream(tempFile);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(tempFileOutputStream, STREAM_BUFFER_SIZE);
writerOutputStream = new OutputStreamWriter(bufferedOutputStream, FILE_ENCODING);

myObjectWriter.writeValue(writerOutputStream, listOfMyObjects);
Run Code Online (Sandbox Code Playgroud)

然而,生成的文件仍然使用默认的“,”作为列分隔符。当我用调试器检查对象时,';' 在对象中设置为分隔符,所以我想它应该可以工作。有谁知道我做错了什么还是这是一个错误?

Ben*_*chi 2

如果您想要替代方案,请使用Open CSV CSVWriter

public CSVWriter(Writer writer, char separator)
Run Code Online (Sandbox Code Playgroud)