Module de.siegmar.fastcsv
Package de.siegmar.fastcsv.reader
Class IndexedCsvReader.IndexedCsvReaderBuilder
java.lang.Object
de.siegmar.fastcsv.reader.IndexedCsvReader.IndexedCsvReaderBuilder
- Enclosing class:
IndexedCsvReader<T>
This builder is used to create configured instances of
IndexedCsvReader
. The default
configuration of this class adheres with RFC 4180.
The line delimiter (line-feed, carriage-return or the combination of both) is detected automatically and thus not configurable.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private char
private CommentStrategy
private CsvIndex
private static final int
private char
private static final int
private static final int
private int
private char
private StatusListener
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionacceptCharsAfterQuotes
(boolean acceptCharsAfterQuotes) Specifies whether the presence of characters between a closing quote and a field separator or the end of a line should be treated as an error or not.<T> IndexedCsvReader
<T> build
(CsvCallbackHandler<T> callbackHandler, Path file) Constructs a newIndexedCsvReader
for the specified callback handler and path using UTF-8 as the character set.<T> IndexedCsvReader
<T> build
(CsvCallbackHandler<T> callbackHandler, Path file, Charset charset) Constructs a newIndexedCsvReader
for the specified arguments.private static void
checkControlCharacter
(char controlChar) commentCharacter
(char commentCharacter) Sets thecommentCharacter
used to comment lines.commentStrategy
(CommentStrategy commentStrategy) Sets the strategy that defines how (and if) commented lines should be handled (default:CommentStrategy.NONE
as comments are not defined in RFC 4180).fieldSeparator
(char fieldSeparator) Sets thefieldSeparator
used when reading CSV data.Sets a prebuilt index that should be used for accessing the file.ofCsvRecord
(Path file) Constructs a newIndexedCsvReader
ofCsvRecord
for the specified path using UTF-8 as the character set.ofCsvRecord
(Path file, Charset charset) Constructs a newIndexedCsvReader
ofCsvRecord
for the specified arguments.pageSize
(int pageSize) quoteCharacter
(char quoteCharacter) Sets thequoteCharacter
used when reading CSV data.statusListener
(StatusListener statusListener) Sets thestatusListener
to listen for indexer status updates.
-
Field Details
-
MAX_BASE_ASCII
private static final int MAX_BASE_ASCII- See Also:
-
DEFAULT_PAGE_SIZE
private static final int DEFAULT_PAGE_SIZE- See Also:
-
MIN_PAGE_SIZE
private static final int MIN_PAGE_SIZE- See Also:
-
fieldSeparator
private char fieldSeparator -
quoteCharacter
private char quoteCharacter -
commentStrategy
-
commentCharacter
private char commentCharacter -
acceptCharsAfterQuotes
private boolean acceptCharsAfterQuotes -
statusListener
-
pageSize
private int pageSize -
csvIndex
-
-
Constructor Details
-
IndexedCsvReaderBuilder
private IndexedCsvReaderBuilder()
-
-
Method Details
-
fieldSeparator
Sets thefieldSeparator
used when reading CSV data.- Parameters:
fieldSeparator
- the field separator character (default:,
- comma).- Returns:
- This updated object, allowing additional method calls to be chained together.
-
quoteCharacter
Sets thequoteCharacter
used when reading CSV data.- Parameters:
quoteCharacter
- the character used to enclose fields (default:"
- double quotes).- Returns:
- This updated object, allowing additional method calls to be chained together.
-
commentStrategy
Sets the strategy that defines how (and if) commented lines should be handled (default:CommentStrategy.NONE
as comments are not defined in RFC 4180).- Parameters:
commentStrategy
- the strategy for handling comments.- Returns:
- This updated object, allowing additional method calls to be chained together.
- Throws:
IllegalArgumentException
- ifCommentStrategy.SKIP
is passed, as this is not supported- See Also:
-
commentCharacter
Sets thecommentCharacter
used to comment lines.- Parameters:
commentCharacter
- the character used to comment lines (default:#
- hash)- Returns:
- This updated object, allowing additional method calls to be chained together.
- See Also:
-
acceptCharsAfterQuotes
public IndexedCsvReader.IndexedCsvReaderBuilder acceptCharsAfterQuotes(boolean acceptCharsAfterQuotes) Specifies whether the presence of characters between a closing quote and a field separator or the end of a line should be treated as an error or not.Example:
"a"b,"c"
If this is set to
true
, the valueab
will be returned for the first field.If this is set to
false
, aCsvParseException
will be thrown.- Parameters:
acceptCharsAfterQuotes
- allow characters after quotes (default:true
).- Returns:
- This updated object, allowing additional method calls to be chained together.
-
statusListener
Sets thestatusListener
to listen for indexer status updates.- Parameters:
statusListener
- the status listener.- Returns:
- This updated object, allowing additional method calls to be chained together.
-
index
Sets a prebuilt index that should be used for accessing the file.- Parameters:
csvIndex
- a prebuilt index- Returns:
- This updated object, allowing additional method calls to be chained together.
-
pageSize
- Parameters:
pageSize
- the maximum size of pages.- Returns:
- This updated object, allowing additional method calls to be chained together.
-
checkControlCharacter
private static void checkControlCharacter(char controlChar) -
ofCsvRecord
Constructs a newIndexedCsvReader
ofCsvRecord
for the specified path using UTF-8 as the character set.Convenience method for
build(CsvCallbackHandler, Path, Charset)
withCsvRecordHandler
as the callback handler andStandardCharsets.UTF_8
as the charset.- Parameters:
file
- the file to read data from.- Returns:
- a new IndexedCsvReader - never
null
. Remember to close it! - Throws:
IOException
- if an I/O error occurs.NullPointerException
- if file or charset isnull
-
ofCsvRecord
Constructs a newIndexedCsvReader
ofCsvRecord
for the specified arguments.Convenience method for
build(CsvCallbackHandler, Path, Charset)
withCsvRecordHandler
as the callback handler.- Parameters:
file
- the file to read data from.charset
- the character set to use.- Returns:
- a new IndexedCsvReader - never
null
. Remember to close it! - Throws:
IOException
- if an I/O error occurs.NullPointerException
- if file or charset isnull
-
build
public <T> IndexedCsvReader<T> build(CsvCallbackHandler<T> callbackHandler, Path file) throws IOException Constructs a newIndexedCsvReader
for the specified callback handler and path using UTF-8 as the character set.Convenience method for
build(CsvCallbackHandler, Path, Charset)
withStandardCharsets.UTF_8
as charset.- Type Parameters:
T
- the type of the CSV record.- Parameters:
callbackHandler
- the callback handler to use.file
- the file to read data from.- Returns:
- a new IndexedCsvReader - never
null
. Remember to close it! - Throws:
IOException
- if an I/O error occurs.NullPointerException
- if callbackHandler, file or charset isnull
-
build
public <T> IndexedCsvReader<T> build(CsvCallbackHandler<T> callbackHandler, Path file, Charset charset) throws IOException Constructs a newIndexedCsvReader
for the specified arguments.- Type Parameters:
T
- the type of the CSV record.- Parameters:
callbackHandler
- the callback handler to use.file
- the file to read data from.charset
- the character set to use.- Returns:
- a new IndexedCsvReader - never
null
. Remember to close it! - Throws:
IOException
- if an I/O error occurs.NullPointerException
- if callbackHandler, file or charset isnull
-