Class CSVPrinter
- java.lang.Object
-
- org.apache.commons.csv.CSVPrinter
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
public final class CSVPrinter extends java.lang.Object implements java.io.Flushable, java.io.Closeable
Prints values in a CSV format.
-
-
Constructor Summary
Constructors Constructor Description CSVPrinter(java.lang.Appendable out, CSVFormat format)
Creates a printer that will print values to the given stream following the CSVFormat.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
void
flush()
Flushes the underlying stream.java.lang.Appendable
getOut()
Gets the target Appendable.void
print(java.lang.Object value)
Prints the string as the next value on the line.void
printComment(java.lang.String comment)
Prints a comment on a new line among the delimiter separated values.void
println()
Outputs the record separator.void
printRecord(java.lang.Iterable<?> values)
Prints the given values a single record of delimiter separated values followed by the record separator.void
printRecord(java.lang.Object... values)
Prints the given values a single record of delimiter separated values followed by the record separator.void
printRecords(java.lang.Iterable<?> values)
Prints all the objects in the given collection handling nested collections/arrays as records.void
printRecords(java.lang.Object... values)
Prints all the objects in the given array handling nested collections/arrays as records.void
printRecords(java.sql.ResultSet resultSet)
Prints all the objects in the given JDBC result set.
-
-
-
Constructor Detail
-
CSVPrinter
public CSVPrinter(java.lang.Appendable out, CSVFormat format) throws java.io.IOException
Creates a printer that will print values to the given stream following the CSVFormat.Currently, only a pure encapsulation format or a pure escaping format is supported. Hybrid formats (encapsulation and escaping with a different character) are not supported.
- Parameters:
out
- stream to which to print. Must not be null.format
- the CSV format. Must not be null.- Throws:
java.io.IOException
- thrown if the optional header cannot be printed.java.lang.IllegalArgumentException
- thrown if the parameters of the format are inconsistent or if either out or format are null.
-
-
Method Detail
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
-
flush
public void flush() throws java.io.IOException
Flushes the underlying stream.- Specified by:
flush
in interfacejava.io.Flushable
- Throws:
java.io.IOException
- If an I/O error occurs
-
getOut
public java.lang.Appendable getOut()
Gets the target Appendable.- Returns:
- the target Appendable.
-
print
public void print(java.lang.Object value) throws java.io.IOException
Prints the string as the next value on the line. The value will be escaped or encapsulated as needed.- Parameters:
value
- value to be output.- Throws:
java.io.IOException
- If an I/O error occurs
-
printComment
public void printComment(java.lang.String comment) throws java.io.IOException
Prints a comment on a new line among the delimiter separated values.Comments will always begin on a new line and occupy a least one full line. The character specified to start comments and a space will be inserted at the beginning of each new line in the comment.
If comments are disabled in the current CSV format this method does nothing.- Parameters:
comment
- the comment to output- Throws:
java.io.IOException
- If an I/O error occurs
-
println
public void println() throws java.io.IOException
Outputs the record separator.- Throws:
java.io.IOException
- If an I/O error occurs
-
printRecord
public void printRecord(java.lang.Iterable<?> values) throws java.io.IOException
Prints the given values a single record of delimiter separated values followed by the record separator.The values will be quoted if needed. Quotes and newLine characters will be escaped. This method adds the record separator to the output after printing the record, so there is no need to call
println()
.- Parameters:
values
- values to output.- Throws:
java.io.IOException
- If an I/O error occurs
-
printRecord
public void printRecord(java.lang.Object... values) throws java.io.IOException
Prints the given values a single record of delimiter separated values followed by the record separator.The values will be quoted if needed. Quotes and newLine characters will be escaped. This method adds the record separator to the output after printing the record, so there is no need to call
println()
.- Parameters:
values
- values to output.- Throws:
java.io.IOException
- If an I/O error occurs
-
printRecords
public void printRecords(java.lang.Iterable<?> values) throws java.io.IOException
Prints all the objects in the given collection handling nested collections/arrays as records.If the given collection only contains simple objects, this method will print a single record like
printRecord(Iterable)
. If the given collections contains nested collections/arrays those nested elements will each be printed as records usingprintRecord(Object...)
.Given the following data structure:
List<String[]> data = ... data.add(new String[]{ "A", "B", "C" }); data.add(new String[]{ "1", "2", "3" }); data.add(new String[]{ "A1", "B2", "C3" });
Calling this method will print:
A, B, C 1, 2, 3 A1, B2, C3
- Parameters:
values
- the values to print.- Throws:
java.io.IOException
- If an I/O error occurs
-
printRecords
public void printRecords(java.lang.Object... values) throws java.io.IOException
Prints all the objects in the given array handling nested collections/arrays as records.If the given array only contains simple objects, this method will print a single record like
printRecord(Object...)
. If the given collections contains nested collections/arrays those nested elements will each be printed as records usingprintRecord(Object...)
.Given the following data structure:
String[][] data = new String[3][] data[0] = String[]{ "A", "B", "C" }; data[1] = new String[]{ "1", "2", "3" }; data[2] = new String[]{ "A1", "B2", "C3" };
Calling this method will print:
A, B, C 1, 2, 3 A1, B2, C3
- Parameters:
values
- the values to print.- Throws:
java.io.IOException
- If an I/O error occurs
-
printRecords
public void printRecords(java.sql.ResultSet resultSet) throws java.sql.SQLException, java.io.IOException
Prints all the objects in the given JDBC result set.- Parameters:
resultSet
- result set the values to print.- Throws:
java.io.IOException
- If an I/O error occursjava.sql.SQLException
- if a database access error occurs
-
-