public class ConcurrentCharInputReader extends AbstractCharInputReader
AbstractCharInputReader when requested.
This class loads "buckets" of characters in the background and provides them sequentially to the AbstractCharInputReader.buffer
attribute in AbstractCharInputReader.
The bucket loading process will block and wait while all buckets are full.
Similarly, the reader will block while all buckets are empty.
This CharInputReader implementation provides a better throughput than DefaultCharInputReader when reading large inputs (> 100 mb).
CharInputReader,
ConcurrentCharLoader,
CharBucketbuffer, closeOnStop, i, length| Constructor and Description |
|---|
ConcurrentCharInputReader(char[] lineSeparator,
char normalizedLineSeparator,
int bucketSize,
int bucketQuantity,
int whitespaceRangeStart,
boolean closeOnStop)
Creates a new instance with the mandatory characters for handling newlines transparently.
|
ConcurrentCharInputReader(char normalizedLineSeparator,
int bucketSize,
int bucketQuantity,
int whitespaceRangeStart,
boolean closeOnStop)
Creates a new instance with the mandatory characters for handling newlines transparently.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
reloadBuffer()
Assigns the next "bucket" of characters to the
AbstractCharInputReader.buffer attribute, and updates the AbstractCharInputReader.length to the number of characters read. |
protected void |
setReader(Reader reader)
Starts an input reading thread to load characters from the given reader into "buckets" of characters
|
void |
stop()
Stops the CharInputReader from reading characters from the
Reader provided in AbstractCharInputReader.start(Reader) and closes it. |
addInputAnalysisProcess, charCount, currentParsedContent, currentParsedContentLength, enableNormalizeLineEndings, getChar, getLineSeparator, getQuotedString, getString, lastIndexOf, lineCount, markRecordStart, nextChar, readComment, skipLines, skipQuotedString, skipString, skipWhitespace, start, unwrapInputStreampublic ConcurrentCharInputReader(char normalizedLineSeparator,
int bucketSize,
int bucketQuantity,
int whitespaceRangeStart,
boolean closeOnStop)
normalizedLineSeparator - the normalized newline character (as defined in Format.getNormalizedNewline())
that is used to replace any lineSeparator sequence found in the input.bucketSize - the size of an each individual "bucket" used to store characters read from the input.bucketQuantity - the number of "buckets" to load in memory. Note the reader will stop if all buckets are full.whitespaceRangeStart - starting range of characters considered to be whitespace.closeOnStop - indicates whether to automatically close the input when stop() is calledpublic ConcurrentCharInputReader(char[] lineSeparator,
char normalizedLineSeparator,
int bucketSize,
int bucketQuantity,
int whitespaceRangeStart,
boolean closeOnStop)
lineSeparator - the sequence of characters that represent a newline, as defined in Format.getLineSeparator()normalizedLineSeparator - the normalized newline character (as defined in Format.getNormalizedNewline())
that is used to replace any lineSeparator sequence found in the input.bucketSize - the size of an each individual "bucket" used to store characters read from the input.bucketQuantity - the number of "buckets" to load in memory. Note the reader will stop if all buckets are full.whitespaceRangeStart - starting range of characters considered to be whitespace.closeOnStop - indicates whether to automatically close the input when stop() is calledpublic void stop()
Reader provided in AbstractCharInputReader.start(Reader) and closes it.
Also stops the input reading thread.protected void setReader(Reader reader)
setReader in class AbstractCharInputReaderreader - the Reader provided in AbstractCharInputReader.start(Reader)protected void reloadBuffer()
AbstractCharInputReader.buffer attribute, and updates the AbstractCharInputReader.length to the number of characters read.reloadBuffer in class AbstractCharInputReaderCopyright © 2021 Univocity Software Pty Ltd. All rights reserved.