Class AbstractCsvWriter

    • Constructor Summary

      Constructors 
      Constructor Description
      AbstractCsvWriter​(java.io.Writer writer, CsvPreference preference)
      Constructs a new AbstractCsvWriter with the supplied writer and preferences.
      AbstractCsvWriter​(java.io.Writer writer, CsvPreference preference, boolean bufferizeWriter)
      Constructs a new AbstractCsvWriter with the supplied writer, preferences and option to wrap the writer.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      Closes the underlying writer, flushing it first.
      void flush()
      Flushes the underlying writer.
      int getLineNumber()
      Gets the current position in the file.
      int getRowNumber()
      Gets the current row number (i.e.
      protected void incrementRowAndLineNo()
      In order to maintain the current row and line numbers, this method must be called at the very beginning of every write method implemented in concrete CSV writers.
      void writeComment​(java.lang.String comment)
      Writes a single-line comment to the CSV file (the comment must already include any special comment characters e.g.
      void writeHeader​(java.lang.String... header)
      Writes the header of the CSV file.
      protected void writeRow​(java.lang.Object... columns)
      Writes one or more Object columns as a line to the CsvWriter.
      protected void writeRow​(java.lang.String... columns)
      Writes one or more String columns as a line to the CsvWriter.
      protected void writeRow​(java.util.List<?> columns)
      Writes a List of columns as a line to the CsvWriter.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AbstractCsvWriter

        public AbstractCsvWriter​(java.io.Writer writer,
                                 CsvPreference preference)
        Constructs a new AbstractCsvWriter with the supplied writer and preferences.
        Parameters:
        writer - the stream to write to
        preference - the CSV preferences
        Throws:
        java.lang.NullPointerException - if writer or preference are null
      • AbstractCsvWriter

        public AbstractCsvWriter​(java.io.Writer writer,
                                 CsvPreference preference,
                                 boolean bufferizeWriter)
        Constructs a new AbstractCsvWriter with the supplied writer, preferences and option to wrap the writer.
        Parameters:
        writer - the stream to write to
        preference - the CSV preferences
        bufferizeWriter - indicates if the writer should be wrapped internally with a BufferedWriter
        Throws:
        java.lang.NullPointerException - if writer or preference are null
    • Method Detail

      • close

        public void close()
                   throws java.io.IOException
        Closes the underlying writer, flushing it first.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException
      • flush

        public void flush()
                   throws java.io.IOException
        Flushes the underlying writer.
        Specified by:
        flush in interface java.io.Flushable
        Throws:
        java.io.IOException
      • incrementRowAndLineNo

        protected void incrementRowAndLineNo()
        In order to maintain the current row and line numbers, this method must be called at the very beginning of every write method implemented in concrete CSV writers. This will allow the correct row/line numbers to be used in any exceptions thrown before writing occurs (e.g. during CellProcessor execution), and means that getLineNumber() and getRowNumber() can be called after writing to return the line/row just written.
      • getLineNumber

        public int getLineNumber()
        Gets the current position in the file. The first line of the file is line number 1.
        Specified by:
        getLineNumber in interface ICsvWriter
        Returns:
        the line number
      • getRowNumber

        public int getRowNumber()
        Gets the current row number (i.e. the number of CSV records - including the header - that have been written). This differs from the lineNumber, which is the number of real lines that have been written to the file. The first row is row 1 (which is typically the header row).
        Specified by:
        getRowNumber in interface ICsvWriter
        Returns:
        the current row number
      • writeRow

        protected void writeRow​(java.util.List<?> columns)
                         throws java.io.IOException
        Writes a List of columns as a line to the CsvWriter.
        Parameters:
        columns - the columns to write
        Throws:
        java.lang.IllegalArgumentException - if columns.size == 0
        java.io.IOException - If an I/O error occurs
        java.lang.NullPointerException - if columns is null
      • writeRow

        protected void writeRow​(java.lang.Object... columns)
                         throws java.io.IOException
        Writes one or more Object columns as a line to the CsvWriter.
        Parameters:
        columns - the columns to write
        Throws:
        java.lang.IllegalArgumentException - if columns.length == 0
        java.io.IOException - If an I/O error occurs
        java.lang.NullPointerException - if columns is null
      • writeRow

        protected void writeRow​(java.lang.String... columns)
                         throws java.io.IOException
        Writes one or more String columns as a line to the CsvWriter.
        Parameters:
        columns - the columns to write
        Throws:
        java.lang.IllegalArgumentException - if columns.length == 0
        java.io.IOException - If an I/O error occurs
        java.lang.NullPointerException - if columns is null
      • writeComment

        public void writeComment​(java.lang.String comment)
                          throws java.io.IOException
        Writes a single-line comment to the CSV file (the comment must already include any special comment characters e.g. '#' at start). Please note that comments are not part of RFC4180, so this may make your CSV file less portable.
        Specified by:
        writeComment in interface ICsvWriter
        Parameters:
        comment - the comment
        Throws:
        java.io.IOException - if an I/O error occurs
      • writeHeader

        public void writeHeader​(java.lang.String... header)
                         throws java.io.IOException
        Writes the header of the CSV file.
        Specified by:
        writeHeader in interface ICsvWriter
        Parameters:
        header - one or more header Strings
        Throws:
        java.io.IOException - if an I/O error occurs