2016-12-14 1 views
0

je la route de chameau qui suit:Camel maréchal Bindy à fichier crée plusieurs rangées d'en-tête

from(inputDirectory) 
    .unmarshal(jaxb) 
    .process(jaxb2CSVDataProcessor) 
    .split(body()) //because there is a list of CSVRecords 
    .marshal(bindyCsvDataFormat) 
    .to(outputDirectory); //appending to existing file using "?autoCreate=true&fileExist=Append" 

pour ma classe de modèle CSV J'utilise des annotations:

@CsvRecord(separator = ",", generateHeaderColumns = true) 
... 

et pour les propriétés

@DataField(pos = 0) 
... 

Mon problème est que les en-têtes sont ajoutés chaque fois qu'un nouvel enregistrement CSV est ajouté.

Y at-il un moyen non-sale de contrôler cela? Est-ce que je manque quelque chose ici?

+0

Les en-têtes sont-ils ajoutés pour chaque enregistrement ou fichier par fichier consommé? – dimitrisli

+0

Pour chaque enregistrement. – theo

+1

Cela est attendu parce que vous appelez le marshal dans le séparateur. Essayez sans le séparateur. –

Répondre

0

J'ai fini par ajouter un processeur qui vérifie si le fichier csv existe juste avant la clause "to". Dans là, je fais une manipulation du tableau d'octets et supprime les en-têtes.