Package fr.gpmsi

Class 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 objet 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.
    • 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)
        Appelle CSVWriter.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 interface AutoCloseable
        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 au CSVWriter. 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