Package fr.gpmsi
Class CsvDestination
- java.lang.Object
-
- fr.gpmsi.CsvDestination
-
- All Implemented Interfaces:
AutoCloseable
public class CsvDestination extends Object implements 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 objetCSVWriter
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 fonctionf(Object)
ou bienf(String)
. Une fois toutes les valeurs d'une rangée envoyées, on appelle la fonctionendRow()
. Lorsque l'on a fini d'envoyer toutes les rangées, on ferme la destination en appelantclose()
. L'interfaceAutoCloseable
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
Constructors Constructor Description CsvDestination(File f)
Constructeur 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 champsCsvDestination(Writer w)
Destination csv avec le séparateur par défaut ';'CsvDestination(Writer w, char fieldSeparator)
Destination csv avec le séparateur donné.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Ferme la destination en fermant tous les flux internes et le flux de sortie qui a été fourni au départ.void
endRow()
Finir la rangée courante, en envoyant la séquence de fin de ligne de la plateforme.void
f(Object obj)
Envoi d'une valeur de champ ( f pour Field)void
f(String fieldValue)
Envoi d'une valeur de champ ( f pour Field)void
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.char
getFieldSeparator()
Retourner le séparateur de champsCSVWriter
getUnderlyingCSVWriter()
Donne un accès direct auCSVWriter
.void
setFieldSeparator(char fieldSeparator)
Définir le séparateur de champsvoid
writeAll(List<String[]> allLines)
AppelleCSVWriter.writeAll(List)
, avec une liste de tableaux, pour faire l'écriture en une seule fois.
-
-
-
Constructor Detail
-
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 (OutputStream
encoding
- EncodagefieldSeparator
- Séparateur de champs- Throws:
UnsupportedEncodingException
- -
-
CsvDestination
public CsvDestination(OutputStream os, String encoding) throws UnsupportedEncodingException
Constructeur avec flux brut et encodage- Parameters:
os
- flux brut (OutputStream
encoding
- Encodage- Throws:
UnsupportedEncodingException
- -
-
CsvDestination
public CsvDestination(Writer w)
Destination csv avec le séparateur par défaut ';'- Parameters:
w
- Le writer à utiliser
-
CsvDestination
public CsvDestination(Writer w, char fieldSeparator)
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
public CsvDestination(File f) throws UnsupportedEncodingException, FileNotFoundException
Constructeur avec un fichier- Parameters:
f
- le fichier- Throws:
UnsupportedEncodingException
- -FileNotFoundException
- -
-
-
Method Detail
-
f
public void f(String fieldValue) throws IOException
Envoi d'une valeur de champ ( f pour Field)- Parameters:
fieldValue
- la valeur à envoyer pour le champ- Throws:
IOException
- -
-
f
public void f(Object obj) throws IOException
Envoi d'une valeur de champ ( f pour Field)- Parameters:
obj
- la valeur à envoyer pour le champ- Throws:
IOException
- -
-
endRow
public void endRow() throws IOException
Finir la rangée courante, en envoyant la séquence de fin de ligne de la plateforme.- Throws:
IOException
- Si erreur E/S
-
writeAll
public void writeAll(List<String[]> allLines)
AppelleCSVWriter.writeAll(List)
, avec une liste de tableaux, pour faire l'écriture en une seule fois.- Parameters:
allLines
- Liste des tableaux
-
flush
public void flush() throws IOException
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
public void close() throws IOException
Ferme la destination en fermant tous les flux internes et le flux de sortie qui a été fourni au départ.- Specified by:
close
in 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
public CSVWriter 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
-
-