Sto provando a scrivere un file CSV usando Jackson 2.2.2 (specialmente jackson-dataformat-csv) ma non riesco a farlo usare il ';' come fileseparatore.Jackson csv writer non usa il corretto separatore di colonne
sto utilizzando il seguente codice per inizializzare l'autore:
CsvMapper mapper = new CsvMapper();
CsvSchema schema = mapper.schemaFor(MyObject.class);
schema = schema.withColumnSeparator(CSV_COLUMN_SEPARATOR);
ObjectWriter myObjectWriter = mapper.writer(schema);
Per creare il CSV faccio qualcosa di simile al seguente:
FileOutputStream tempFileOutputStream = new FileOutputStream(tempFile);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(tempFileOutputStream, STREAM_BUFFER_SIZE);
writerOutputStream = new OutputStreamWriter(bufferedOutputStream, FILE_ENCODING);
myObjectWriter.writeValue(writerOutputStream, listOfMyObjects);
Tuttavia, il file risultante utilizza ancora il default ' , 'come separatore di colonne. Quando controllo l'oggetto con il debugger ';' è impostato come separatore nell'oggetto, quindi credo che dovrebbe funzionare. Qualcuno sa cosa sto sbagliando o è un bug?
Non ho mai cercato sul Web una risposta e ho scoperto che questa funzione non funziona nella versione 2.2.2 Funziona dalla versione 2.2.3 che è stata rilasciata 4 giorni fa ma non è disponibile nei repository di Maven ancora. – Ozzie
Dovrebbe essere lì da un paio di giorni: http://repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-csv/2.2.3/ – StaxMan