public class StringBuilderReader
extends java.io.Reader
Reader
over a StringBuilder
instance. Although
one can use StringReader
by passing it
StringBuilder.toString()
, it is better to use this class, as it
doesn't mark the passed-in StringBuilder
as shared (which will cause
inner char[] allocations at the next append() attempt).StringBuilder
is not
changed during the use of this Reader
implementation.
StringReader
(for
the right reasons).
StringBuilder sb = new StringBuilder("some text"); Reader reader = new StringBuilderReader(sb); ... read from reader - don't close it ! ... sb.setLength(0); sb.append("some new text"); reader.reset(); ... read the new string from the reader ...
Constructor and Description |
---|
StringBuilderReader(java.lang.StringBuilder sb) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
mark(int readAheadLimit)
Mark the present position in the stream.
|
boolean |
markSupported() |
int |
read() |
int |
read(char[] cbuf,
int off,
int len) |
boolean |
ready() |
void |
reset() |
void |
set(java.lang.StringBuilder sb) |
long |
skip(long ns) |
public void close()
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class java.io.Reader
public void mark(int readAheadLimit) throws java.io.IOException
mark
in class java.io.Reader
readAheadLimit
- Limit on the number of characters that may be read
while still preserving the mark. Because the stream's input comes
from a StringBuilder, there is no actual limit, so this argument
must not be negative, but is otherwise ignored.java.lang.IllegalArgumentException
- If readAheadLimit is < 0java.io.IOException
- If an I/O error occurspublic boolean markSupported()
markSupported
in class java.io.Reader
public int read() throws java.io.IOException
read
in class java.io.Reader
java.io.IOException
public int read(char[] cbuf, int off, int len) throws java.io.IOException
read
in class java.io.Reader
java.io.IOException
public boolean ready() throws java.io.IOException
ready
in class java.io.Reader
java.io.IOException
public void reset() throws java.io.IOException
reset
in class java.io.Reader
java.io.IOException
public void set(java.lang.StringBuilder sb)
public long skip(long ns) throws java.io.IOException
skip
in class java.io.Reader
java.io.IOException
Copyright © 2000-2024 Apache Software Foundation. All Rights Reserved.