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 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.
  • Constructor Details

  • Method Details

    • 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