5

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);

csv を作成するには、次のようなことを行います。

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

myObjectWriter.writeValue(writerOutputStream, listOfMyObjects);

ただし、結果のファイルでは、列区切りとしてデフォルトの「,」が引き続き使用されます。デバッガーでオブジェクトをチェックすると、「;」オブジェクトのセパレーターとして設定されているので、うまくいくはずです。誰かが私が間違っていることを知っていますか、それともこれはバグですか?

4

1 に答える 1

2

別の方法が必要な場合は、Open CSV CSVWriterを使用します。

public CSVWriter(Writer writer, char separator)
于 2013-08-28T13:55:22.613 に答える