Vi un peu, peut être plus simple dans le mapping (avec des annotations).
Exemple de classe métier :
1 2 3 4 5 6 7 8
| @FichierCsv(value = "objet_csv.txt", separateur = "\\|")
public static class ObjetCsv {
@BaliseCsv(value = "att_1", ordre = 0)
private String attribut1;
@BaliseCsv(value = "att_2", ordre = 1, adapter = AdapterBoolean.class)
private Boolean attribut2;
} |
Création du moteur (prend la liste de classe à gérer en paramètre) :
MoteurCsv moteur = new MoteurCsv(new ArrayList<Class<?>>(Collections.singletonList(ObjetCsv.class)));
Exemple de lecture de fichier (stream est un inputStream) :
List<ObjetCsv> objets = moteur.parseInputStream(stream, ObjetCsv.class);
Exemple d'écriture de fichier :
1 2
| File file = File.createTempFile("objet_csv", "txt");
moteur.writeFile(file, objets, ObjetCsv.class); |
Partager