Class CharSequenceReader

java.lang.Object
java.io.Reader
java.io.BufferedReader
org.apache.juneau.commons.io.CharSequenceReader
All Implemented Interfaces:
Closeable, AutoCloseable, Readable

public class CharSequenceReader extends BufferedReader
A 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:

// Read from String CharSequenceReader reader1 = new CharSequenceReader("Hello World"); // Read from StringBuilder StringBuilder sb = new StringBuilder("Dynamic content"); CharSequenceReader reader2 = new CharSequenceReader(sb); // Read from StringBuffer StringBuffer sbuf = new StringBuffer("Buffer content"); CharSequenceReader reader3 = new CharSequenceReader(sbuf); // Use with APIs that require Reader try (CharSequenceReader reader = new CharSequenceReader("data")) { // Process reader }

Performance:

This class optimizes reading based on the CharSequence type:

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:
  • 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 CharSequenceReader reader1 = new CharSequenceReader("Hello"); // From StringBuilder StringBuilder sb = new StringBuilder("World"); CharSequenceReader reader2 = new CharSequenceReader(sb); // Null is treated as empty string CharSequenceReader reader3 = new CharSequenceReader(null); int ch = reader3.read(); // Returns -1 (EOF)

      Parameters:
      cs - The CharSequence to read from. Can be null (treated as empty string).
  • Method Details