public class CsvWriterSettings extends CommonWriterSettings<CsvFormat>
CsvWriter
)
In addition to the configuration options provided by CommonWriterSettings
, the CsvWriterSettings include:
If the writer has an empty String to write to the output, the emptyValue is used instead of an empty string
If this property is set to true, this indicates that all written values should be enclosed within quotes (as defined in CsvFormat
)
CsvWriter
,
CsvFormat
,
CommonWriterSettings
Constructor and Description |
---|
CsvWriterSettings() |
Modifier and Type | Method and Description |
---|---|
protected void |
addConfiguration(Map<String,Object> out) |
CsvWriterSettings |
clone()
Clones this configuration object.
|
CsvWriterSettings |
clone(boolean clearInputSpecificSettings)
Clones this configuration object to reuse user-provided settings.
|
protected CsvFormat |
createDefaultFormat()
Returns the default CsvFormat configured to produce CSV outputs compliant to the RFC4180 standard.
|
char[] |
getQuotationTriggers()
Returns the list of characters that when present in a value to be written, will
force the output value to be enclosed in quotes.
|
boolean |
getQuoteAllFields()
Indicates that all written values should be enclosed within quotes (as defined in
CsvFormat ) |
boolean |
getQuoteNulls()
Flag whether to quote
null values sent to the CsvWriter when the corresponding column
is configured to be quoted via quoteFields(String...) , or getQuoteAllFields() evaluates to true . |
boolean |
isEscapeUnquotedValues()
Indicates whether escape sequences should be written in unquoted values.
|
boolean |
isInputEscaped()
Indicates that the user will provide escaped input, and the writer will not try to introduce escape sequences.
|
boolean |
isNormalizeLineEndingsWithinQuotes()
Flag indicating whether the writer should replace the the normalized line separator character specified in
Format.getNormalizedNewline()
by the sequence specified in Format.getLineSeparator() , when the value is enclosed within quotes. |
boolean |
isQuotationTrigger(char ch)
Queries if a given character is a quotation trigger, i.e.
|
boolean |
isQuoteEscapingEnabled()
Indicates whether the CSV writer should escape values that contain the quote character, by enclosing the entire
value in quotes.
|
FieldSet<Enum> |
quoteFields(Enum... columns)
Selects fields whose values should always be written within quotes
|
FieldSet<String> |
quoteFields(String... columns)
Selects fields whose values should always be written within quotes
|
FieldSet<Integer> |
quoteIndexes(Integer... columns)
Selects field positions whose values should always be written within quotes
|
void |
setEscapeUnquotedValues(boolean escapeUnquotedValues)
Configures the writer to process escape sequences in unquoted values.
|
void |
setInputEscaped(boolean isInputEscaped)
Configures the writer to prevent it to introduce escape sequences.
|
void |
setNormalizeLineEndingsWithinQuotes(boolean normalizeLineEndingsWithinQuotes)
Flag indicating whether the writer should replace the the normalized line separator character specified in
Format.getNormalizedNewline()
by the sequence specified in Format.getLineSeparator() , when the value is enclosed within quotes. |
void |
setQuotationTriggers(char... quotationTriggers)
Defines one or more "triggers" for enclosing a value within quotes.
|
void |
setQuoteAllFields(boolean quoteAllFields)
Indicates indicates whether or not all written values should be enclosed within quotes (as defined in
CsvFormat ) |
void |
setQuoteEscapingEnabled(boolean quoteEscapingEnabled)
Configures the CSV writer to escape values that contain the quote character, by enclosing the entire
value in quotes.
|
void |
setQuoteNulls(boolean quoteNulls)
Configures whether to quote
null values sent to the CsvWriter when the corresponding column
is configured to be quoted via quoteFields(String...) , or getQuoteAllFields() evaluates to true . |
clearInputSpecificSettings, configureFromAnnotations, getEmptyValue, getExpandIncompleteRows, getRowWriterProcessor, isColumnReorderingEnabled, isHeaderWritingEnabled, setColumnReorderingEnabled, setEmptyValue, setExpandIncompleteRows, setHeaderWritingEnabled, setRowWriterProcessor
excludeFields, excludeFields, excludeIndexes, getErrorContentLength, getFormat, getHeaders, getIgnoreLeadingWhitespaces, getIgnoreTrailingWhitespaces, getMaxCharsPerColumn, getMaxColumns, getNullValue, getProcessorErrorHandler, getRowProcessorErrorHandler, getSkipBitsAsWhitespace, getSkipEmptyLines, getWhitespaceRangeStart, isAutoConfigurationEnabled, isProcessorErrorHandlerDefined, selectFields, selectFields, selectIndexes, setAutoConfigurationEnabled, setErrorContentLength, setFormat, setHeaders, setIgnoreLeadingWhitespaces, setIgnoreTrailingWhitespaces, setMaxCharsPerColumn, setMaxColumns, setNullValue, setProcessorErrorHandler, setRowProcessorErrorHandler, setSkipBitsAsWhitespace, setSkipEmptyLines, toString, trimValues
public boolean getQuoteAllFields()
CsvFormat
)
(Defaults to false)
public void setQuoteAllFields(boolean quoteAllFields)
CsvFormat
)
(Defaults to false)
By default, only values that contain a field separator are enclosed within quotes.
quoteAllFields
- a flag indicating whether to enclose all fields within quotespublic boolean isEscapeUnquotedValues()
false
.
By default, this is disabled and if the input is A""B,C
, the resulting value will be
[A""B] and [C]
(i.e. the content is written as-is). However, if the writer is configured
to process escape sequences in unquoted values, the values will be written as [A""""B] and [C]
public void setEscapeUnquotedValues(boolean escapeUnquotedValues)
false
.
By default, this is disabled and if the input is A""B,C
, the result will be written as
[A""B] and [C]
(i.e. the quotes written as-is). However, if the writer is configured
to process escape sequences in unquoted values, the values will written as [A""""B] and [C]
escapeUnquotedValues
- a flag indicating whether escape sequences should be processed in unquoted valuespublic final boolean isInputEscaped()
Warning! ensure your data is properly escaped, otherwise the writer will produce invalid CSV.
This is disabled by default
public final void setInputEscaped(boolean isInputEscaped)
Warning! ensure your data is properly escaped, otherwise the writer will produce invalid CSV.
This is disabled by default
isInputEscaped
- a flag indicating whether the input that will be written is already properly escaped.public boolean isNormalizeLineEndingsWithinQuotes()
Format.getNormalizedNewline()
by the sequence specified in Format.getLineSeparator()
, when the value is enclosed within quotes.
This is enabled by default and is used to ensure data be read on any platform without introducing unwanted blank lines.
For example, consider the quoted value "Line1 \n Line2"
. If this is written using "\r\n"
as
the line separator sequence, and the normalized new line is set to '\n'
(the default), the output will be:
[Line1 \r\n Line2]
However, if the value is meant to be kept untouched, and the original line separator should be maintained, set
the normalizeLineEndingsWithinQuotes
to false
. This will make the writer output the value as-is, producing:
[Line1 \n Line2]
true
if line separator characters in quoted values should be considered 'normalized' and replaced by the
sequence specified in Format.getLineSeparator()
, false
otherwisepublic void setNormalizeLineEndingsWithinQuotes(boolean normalizeLineEndingsWithinQuotes)
Format.getNormalizedNewline()
by the sequence specified in Format.getLineSeparator()
, when the value is enclosed within quotes.
This is enabled by default and is used to ensure data can be used on any platform without producing unrecognized line endings.
For example, consider the quoted value "Line1 \n Line2"
. If this is written using "\r\n"
as
the line separator sequence, and the normalized new line is set to '\n'
(the default), the output will be:
[Line1 \r\n Line2]
However, if the value is meant to be kept untouched, and the original line separator should be maintained, set
the normalizeLineEndingsWithinQuotes
to false
. This will make the writer output the value as-is, producing:
[Line1 \n Line2]
normalizeLineEndingsWithinQuotes
- flag indicating that line separator characters in quoted values should be
considered 'normalized' and occurrences of Format.getNormalizedNewline()
should be replaced by the sequence specified in Format.getLineSeparator()
protected CsvFormat createDefaultFormat()
createDefaultFormat
in class CommonSettings<CsvFormat>
public char[] getQuotationTriggers()
public void setQuotationTriggers(char... quotationTriggers)
quotationTriggers
- a list of characters that when present in a value to be written, will
force the output value to be enclosed in quotes.public boolean isQuotationTrigger(char ch)
ch
- the character to be testedtrue
if the given character is a quotation trigger, false
otherwise.public boolean isQuoteEscapingEnabled()
[My "precious" value]
.
When quote escaping is enabled, the output will be:
["My ""precious"" value"]
If disabled (the default), the value will be written as-is. Note that the CSV output will not conform to the RFC 4180 standard,
but it will still be valid as the value does not contain line separators nor the delimiter character.public void setQuoteEscapingEnabled(boolean quoteEscapingEnabled)
[My "precious" value]
.
When quote escaping is enabled, the output will be:
["My ""precious"" value"]
If disabled (the default), the value will be written as-is. Note that the CSV output will not conform to the RFC 4180 standard,
but it will still be valid as the value does not contain line separators nor the delimiter character.quoteEscapingEnabled
- a flag indicating whether values containing quotes should be enclosed in quotes.protected void addConfiguration(Map<String,Object> out)
addConfiguration
in class CommonWriterSettings<CsvFormat>
public final CsvWriterSettings clone()
CommonSettings
CommonSettings.clone(boolean)
method to reset properties that are
specific to a given input, such as header names and selection of fields.clone
in class CommonWriterSettings<CsvFormat>
public final CsvWriterSettings clone(boolean clearInputSpecificSettings)
CommonSettings
clearInputSpecificSettings
flag is set to true
clone
in class CommonWriterSettings<CsvFormat>
clearInputSpecificSettings
- flag indicating whether to clear settings that are likely to be associated with a given input.public final FieldSet<Enum> quoteFields(Enum... columns)
columns
- a selection of columns that will always be quotedpublic final FieldSet<String> quoteFields(String... columns)
columns
- a selection of columns that will always be quotedpublic final FieldSet<Integer> quoteIndexes(Integer... columns)
columns
- a selection of column indexes that will always be quotedpublic void setQuoteNulls(boolean quoteNulls)
null
values sent to the CsvWriter
when the corresponding column
is configured to be quoted via quoteFields(String...)
, or getQuoteAllFields()
evaluates to true
.quoteNulls
- flag indicating whether null
values should be quoted.public boolean getQuoteNulls()
null
values sent to the CsvWriter
when the corresponding column
is configured to be quoted via quoteFields(String...)
, or getQuoteAllFields()
evaluates to true
.null
values should be quoted.Copyright © 2021 Univocity Software Pty Ltd. All rights reserved.