Class CharSource.ConcatenatedCharSource
- java.lang.Object
-
- com.google.common.io.CharSource
-
- com.google.common.io.CharSource.ConcatenatedCharSource
-
- Enclosing class:
- CharSource
private static final class CharSource.ConcatenatedCharSource extends CharSource
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Iterable<? extends CharSource>
sources
-
Constructor Summary
Constructors Constructor Description ConcatenatedCharSource(java.lang.Iterable<? extends CharSource> sources)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
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.Optional<java.lang.Long>
lengthIfKnown()
Returns the size of this source in chars, if the size can be easily determined without actually opening the data stream.java.io.Reader
openStream()
Opens a newReader
for reading from this source.java.lang.String
toString()
-
Methods inherited from class com.google.common.io.CharSource
asByteSource, concat, concat, concat, copyTo, copyTo, empty, openBufferedStream, read, readFirstLine, readLines, readLines, wrap
-
-
-
-
Field Detail
-
sources
private final java.lang.Iterable<? extends CharSource> sources
-
-
Constructor Detail
-
ConcatenatedCharSource
ConcatenatedCharSource(java.lang.Iterable<? extends CharSource> sources)
-
-
Method Detail
-
openStream
public java.io.Reader openStream() throws java.io.IOException
Description copied from class:CharSource
Opens a newReader
for reading from this source. This method should return 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
- Throws:
java.io.IOException
- if an I/O error occurs in the process of opening the reader
-
isEmpty
public boolean isEmpty() throws java.io.IOException
Description copied from class:CharSource
Returns whether the source has zero chars. The default implementation returns true ifCharSource.lengthIfKnown()
returns zero, falling back to opening a stream and checking for EOF if the length is not known.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
- Throws:
java.io.IOException
- if an I/O error occurs
-
lengthIfKnown
public Optional<java.lang.Long> 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
-
length
public long length() throws java.io.IOException
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
- Throws:
java.io.IOException
- if an I/O error occurs in the process of reading the length of this source
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-