Class CsvDestination
java.lang.Object
fr.gpmsi.CsvDestination
- All Implemented Interfaces:
AutoCloseable
Objet "destination" pour écrire dans un fichier ou un flux des valeurs qui seront
séparées par une virgule ou un point-virgule.
En interne, un objet
La librairie opencsv utilisée est une ancienne version qui est plus simple pour le peu qui est utilisé ici. Il se peut qu'à l'avenir une nouvelle version sera utilisée. Si on veut d'autres valeurs pour les séparateurs, utiliser un CSVWriter directement.
CSVWriter est utilisé pour écrire au format csv.
Pour créer une destination, on utilise un des constructeurs disponibles.
On écrit ensuite les valeurs une par une en utilisant la fonction f(Object) ou
bien f(String).
Une fois toutes les valeurs d'une rangée envoyées, on appelle la fonction endRow().
Lorsque l'on a fini d'envoyer toutes les rangées, on ferme la destination
en appelant close().
L'interface AutoCloseable est implémentée, donc on peut ouvrir cet objet dans un bloc
"try-with-resources".
La librairie opencsv utilisée est une ancienne version qui est plus simple pour le peu qui est utilisé ici. Il se peut qu'à l'avenir une nouvelle version sera utilisée. Si on veut d'autres valeurs pour les séparateurs, utiliser un CSVWriter directement.
-
Constructor Summary
ConstructorsConstructorDescriptionConstructeur avec un fichierCsvDestination(File f, String encoding) Constructeur avec fichier + encodageCsvDestination(File f, String encoding, char fieldSeparator) Constructeur avec fichier, encodage et séparateur de champCsvDestination(OutputStream os, String encoding) Constructeur avec flux brut et encodageCsvDestination(OutputStream os, String encoding, char fieldSeparator) Constructeur avec flux brut, encodage et séparateur de champsDestination csv avec le séparateur par défaut ';'CsvDestination(Writer w, char fieldSeparator) Destination csv avec le séparateur donné. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Ferme la destination en fermant tous les flux internes et le flux de sortie qui a été fourni au départ.voidendRow()Finir la rangée courante, en envoyant la séquence de fin de ligne de la plateforme.voidEnvoi d'une valeur de champ ( f pour Field)voidEnvoi d'une valeur de champ ( f pour Field)voidflush()Finir les envois du flux ; N.B. si on appelle close(), pas besoin d'appeler cette méthode avant, close() fait le flush avant la fermeture.charRetourner le séparateur de champsDonne un accès direct auCSVWriter.voidsetFieldSeparator(char fieldSeparator) Définir le séparateur de champsvoidAppelleCSVWriter.writeAll(List), avec une liste de tableaux, pour faire l'écriture en une seule fois.
-
Constructor Details
-
CsvDestination
public CsvDestination(OutputStream os, String encoding, char fieldSeparator) throws UnsupportedEncodingException Constructeur avec flux brut, encodage et séparateur de champs- Parameters:
os- flux brut (OutputStreamencoding- EncodagefieldSeparator- Séparateur de champs- Throws:
UnsupportedEncodingException- -
-
CsvDestination
Constructeur avec flux brut et encodage- Parameters:
os- flux brut (OutputStreamencoding- Encodage- Throws:
UnsupportedEncodingException- -
-
CsvDestination
Destination csv avec le séparateur par défaut ';'- Parameters:
w- Le writer à utiliser
-
CsvDestination
Destination csv avec le séparateur donné. Le reste des paramètres est :- quote character : "
- escape quote character : "
- line end : \r\n
- Parameters:
w- Le Writer de destinationfieldSeparator- Le séparateur de champs
-
CsvDestination
public CsvDestination(File f, String encoding, char fieldSeparator) throws UnsupportedEncodingException, FileNotFoundException Constructeur avec fichier, encodage et séparateur de champ- Parameters:
f- fichierencoding- encodagefieldSeparator- caractère séparateur de champ- Throws:
UnsupportedEncodingException- -FileNotFoundException- -
-
CsvDestination
public CsvDestination(File f, String encoding) throws UnsupportedEncodingException, FileNotFoundException Constructeur avec fichier + encodage- Parameters:
f- fichierencoding- encodage- Throws:
UnsupportedEncodingException- -FileNotFoundException- -
-
CsvDestination
Constructeur avec un fichier- Parameters:
f- le fichier- Throws:
UnsupportedEncodingException- -FileNotFoundException- -
-
-
Method Details
-
f
Envoi d'une valeur de champ ( f pour Field)- Parameters:
fieldValue- la valeur à envoyer pour le champ- Throws:
IOException- -
-
f
Envoi d'une valeur de champ ( f pour Field)- Parameters:
obj- la valeur à envoyer pour le champ- Throws:
IOException- -
-
endRow
Finir la rangée courante, en envoyant la séquence de fin de ligne de la plateforme.- Throws:
IOException- Si erreur E/S
-
writeAll
AppelleCSVWriter.writeAll(List), avec une liste de tableaux, pour faire l'écriture en une seule fois.- Parameters:
allLines- Liste des tableaux
-
flush
Finir les envois du flux ; N.B. si on appelle close(), pas besoin d'appeler cette méthode avant, close() fait le flush avant la fermeture.- Throws:
IOException- -
-
close
Ferme la destination en fermant tous les flux internes et le flux de sortie qui a été fourni au départ.- Specified by:
closein interfaceAutoCloseable- Throws:
IOException- Si erreur E/S
-
getFieldSeparator
public char getFieldSeparator()Retourner le séparateur de champs- Returns:
- le séparateur de champs
-
setFieldSeparator
public void setFieldSeparator(char fieldSeparator) Définir le séparateur de champs- Parameters:
fieldSeparator- séparateur de champs (défaut : ';')
-
getUnderlyingCSVWriter
Donne un accès direct auCSVWriter. Permet d'utiliser d'autres fonctions de la librairie opencsv, mais attention car ces fonctions changent entre les versions (entre 3, 4 et 5 les changements entraînent des ruptures de compatibilité)
Cf. CSVWriter pour plus d'informations.- Returns:
- l'objet
CSVWriter
-