Class CharSequenceReader
- All Implemented Interfaces:
Closeable,AutoCloseable,Readable
Reader implementation that reads from any CharSequence (String, StringBuilder, StringBuffer, etc.).
This class extends BufferedReader and provides efficient reading from any CharSequence
implementation. Unlike StringReader, which only works with String, this class can
read from StringBuilder, StringBuffer, or any other CharSequence implementation.
Features:
- Generic CharSequence support - works with String, StringBuilder, StringBuffer, and other CharSequence types
- Efficient reading - optimized for different CharSequence types
- No-op close - close() method does nothing (CharSequence is in-memory)
- No mark support - mark/reset operations are not supported
Use Cases:
- Reading from StringBuilder or StringBuffer instances
- Converting CharSequence data to Reader for APIs that require Reader
- Processing character data from various CharSequence sources
- Testing scenarios where you need a Reader from in-memory data
Usage:
Performance:
This class optimizes reading based on the CharSequence type:
- String - uses efficient
String.getChars(int, int, char[], int)method - StringBuffer - uses efficient
StringBuffer.getChars(int, int, char[], int)method - StringBuilder - uses efficient
StringBuilder.getChars(int, int, char[], int)method - Other CharSequence - falls back to character-by-character reading via
CharSequence.charAt(int)
Thread Safety:
This class is not thread-safe. If the underlying CharSequence is modified by another thread while reading, the behavior is undefined. For thread-safe reading, ensure the CharSequence is not modified during reading, or use external synchronization.
See Also:
-
Field Summary
-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class java.io.Reader
nullReader, read, read, transferTo
-
Constructor Details
-
CharSequenceReader
Constructor.Creates a new CharSequenceReader that reads from the specified CharSequence. If the CharSequence is
null , it is treated as an empty string.Example:
// From String CharSequenceReaderreader1 =new CharSequenceReader("Hello" );// From StringBuilder StringBuildersb =new StringBuilder("World" ); CharSequenceReaderreader2 =new CharSequenceReader(sb );// Null is treated as empty string CharSequenceReaderreader3 =new CharSequenceReader(null );int ch =reader3 .read();// Returns -1 (EOF) - Parameters:
cs- The CharSequence to read from. Can benull (treated as empty string).
-
-
Method Details
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classBufferedReader
-
markSupported
- Overrides:
markSupportedin classBufferedReader
-
read
- Overrides:
readin classBufferedReader
-
read
- Overrides:
readin classBufferedReader
-
skip
- Overrides:
skipin classBufferedReader
-
toString
-