Je suis en train de créer un adaptateur CSV. (je suis obligé car un fichier va créer plusieurs objets et les lier entre eux).
Mon fichier CSV a pour séparateur la virgule et pour quote ". Je les ai bien paramétré avec setSeparator(‘,’) et setQuote(’ " ').
Cependant, certaines valeurs, du texte entre quote, contiennent des sauts de lignes. Ils devraient être ignoré car entre quote mais ce n’est pas le cas. Lorsque je log chaque ligne avec :
appendLog("Processing line " + n + " = " + String.join(String.valueOf(getSeparator()), values));
Je vois bien que chaque retour à la ligne dans la valeur appel une nouvelle fois processValues.
J’ai trouvé la solution tout seul, il ne faut pas utiliser cette classe mais plutôt ApacheCommonsCSVAdapter. Ce parser gère les sauts de ligne au sein d’un record et le fonctionnement reste le même je traite ligne par ligne.
Oui l’adapter ApacheCommonsCSVAdapter utilise, comme son nom l’indique, la lib commons CSV, qui sait gérer des fichiers CSV arbitraires à la structure potentiellement complexe (ex: avec sauts de lignes dans certains champs)
Le CSVLineBasedAdapter est un adapter “historique” plus basique qui ne sait gérer que des fichiers CSV simples