我正在尝试使用Jackson 2.2.2编写一个CSV文件(特别是jackson-dataformat-csv),但我无法使用';'作为fileseparator。
我正在使用以下代码初始化编写器:
CsvMapper mapper = new CsvMapper();
CsvSchema schema = mapper.schemaFor(MyObject.class);
schema = schema.withColumnSeparator(CSV_COLUMN_SEPARATOR);
ObjectWriter myObjectWriter = mapper.writer(schema);
要创建csv,我会执行以下操作:
FileOutputStream tempFileOutputStream = new FileOutputStream(tempFile);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(tempFileOutputStream, STREAM_BUFFER_SIZE);
writerOutputStream = new OutputStreamWriter(bufferedOutputStream, FILE_ENCODING);
myObjectWriter.writeValue(writerOutputStream, listOfMyObjects);
但是,生成的文件仍使用默认的“,”作为列分隔符。当我用调试器检查对象时';'在对象中设置为分隔符,所以我想它应该工作。有谁知道我做错了什么或这是一个错误?
答案 0 :(得分:2)
如果您想要替代方案,请使用Open CSV CSVWriter
:
public CSVWriter(Writer writer, char separator)