Class CharSource.CharSequenceCharSource
- Direct Known Subclasses:
CharSource.StringCharSource
- Enclosing class:
CharSource
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
isEmpty()
Returns whether the source has zero chars.long
length()
Returns the length of this source in chars, even if doing so requires opening and traversing an entire stream.Returns the size of this source in chars, if the size can be easily determined without actually opening the data stream.lines()
Opens a newStream
for reading text one line at a time from this source.Returns an iterator over the lines in the string.Opens a newReader
for reading from this source.read()
Reads the contents of this source as a string.Reads the first line of this source as a string.Reads all the lines of this source as a list of strings.<T> T
readLines
(LineProcessor<T> processor) Reads lines of text from this source, processing each line as it is read using the givenprocessor
.toString()
Methods inherited from class com.google.common.io.CharSource
asByteSource, concat, concat, concat, copyTo, copyTo, empty, forEachLine, openBufferedStream, wrap
-
Field Details
-
LINE_SPLITTER
-
seq
-
-
Constructor Details
-
CharSequenceCharSource
-
-
Method Details
-
openStream
Description copied from class:CharSource
Opens a newReader
for reading from this source. This method returns a new, independent reader each time it is called.The caller is responsible for ensuring that the returned reader is closed.
- Specified by:
openStream
in classCharSource
-
read
Description copied from class:CharSource
Reads the contents of this source as a string.- Overrides:
read
in classCharSource
-
isEmpty
public boolean isEmpty()Description copied from class:CharSource
Returns whether the source has zero chars. The default implementation first checksCharSource.lengthIfKnown()
, returning true if it's known to be zero and false if it's known to be non-zero. If the length is not known, it falls back to opening a stream and checking for EOF.Note that, in cases where
lengthIfKnown
returns zero, it is possible that chars are actually available for reading. This means that a source may returntrue
fromisEmpty()
despite having readable content.- Overrides:
isEmpty
in classCharSource
-
length
public long length()Description copied from class:CharSource
Returns the length of this source in chars, even if doing so requires opening and traversing an entire stream. To avoid a potentially expensive operation, seeCharSource.lengthIfKnown()
.The default implementation calls
CharSource.lengthIfKnown()
and returns the value if present. If absent, it will fall back to a heavyweight operation that will open a stream,skip
to the end of the stream, and return the total number of chars that were skipped.Note that for sources that implement
CharSource.lengthIfKnown()
to provide a more efficient implementation, it is possible that this method will return a different number of chars than would be returned by reading all of the chars.In either case, for mutable sources such as files, a subsequent read may return a different number of chars if the contents are changed.
- Overrides:
length
in classCharSource
-
lengthIfKnown
Description copied from class:CharSource
Returns the size of this source in chars, if the size can be easily determined without actually opening the data stream.The default implementation returns
Optional.absent()
. Some sources, such as aCharSequence
, may return a non-absent value. Note that in such cases, it is possible that this method will return a different number of chars than would be returned by reading all of the chars.Additionally, for mutable sources such as
StringBuilder
s, a subsequent read may return a different number of chars if the contents are changed.- Overrides:
lengthIfKnown
in classCharSource
-
linesIterator
Returns an iterator over the lines in the string. If the string ends in a newline, a final empty string is not included, to match the behavior of BufferedReader/LineReader.readLine(). -
lines
Description copied from class:CharSource
Opens a newStream
for reading text one line at a time from this source. This method returns a new, independent stream each time it is called.The returned stream is lazy and only reads from the source in the terminal operation. If an I/O error occurs while the stream is reading from the source or when the stream is closed, an
UncheckedIOException
is thrown.Like
BufferedReader.readLine()
, this method considers a line to be a sequence of text that is terminated by (but does not include) one of\r\n
,\r
or\n
. If the source's content does not end in a line termination sequence, it is treated as if it does.The caller is responsible for ensuring that the returned stream is closed. For example:
try (Stream<String> lines = source.lines()) { lines.map(...) .filter(...) .forEach(...); }
- Overrides:
lines
in classCharSource
-
readFirstLine
Description copied from class:CharSource
Reads the first line of this source as a string. Returnsnull
if this source is empty.Like
BufferedReader.readLine()
, this method considers a line to be a sequence of text that is terminated by (but does not include) one of\r\n
,\r
or\n
. If the source's content does not end in a line termination sequence, it is treated as if it does.- Overrides:
readFirstLine
in classCharSource
-
readLines
Description copied from class:CharSource
Reads all the lines of this source as a list of strings. The returned list will be empty if this source is empty.Like
BufferedReader.readLine()
, this method considers a line to be a sequence of text that is terminated by (but does not include) one of\r\n
,\r
or\n
. If the source's content does not end in a line termination sequence, it is treated as if it does.- Overrides:
readLines
in classCharSource
-
readLines
Description copied from class:CharSource
Reads lines of text from this source, processing each line as it is read using the givenprocessor
. Stops when all lines have been processed or the processor returnsfalse
and returns the result produced by the processor.Like
BufferedReader.readLine()
, this method considers a line to be a sequence of text that is terminated by (but does not include) one of\r\n
,\r
or\n
. If the source's content does not end in a line termination sequence, it is treated as if it does.- Overrides:
readLines
in classCharSource
- Throws:
IOException
- if an I/O error occurs while reading from this source or ifprocessor
throws anIOException
-
toString
-