Re: What replaces StringBufferInputStream
As we know java String is char array. When we look through code source
for
StringBufferInputStream and StringReader read method we can see
difference
between:
StringBufferInputStream:
public synchronized int read() {
return (pos < count) ? (buffer.charAt(pos++) & 0xFF) : -1;
StringReader:
public int read() throws IOException {
synchronized (lock) {
ensureOpen();
if (next >= length)
return -1;
return str.charAt(next++);
}
}
As we see StringBufferInputStream's read method return only low byte
from char as int . That is why it is deprecated.
Best Vahan
Patricia Shanahan wrote:
Arne Vajh=F8j wrote:
Patricia Shanahan wrote:
I need to generate an InputStream from a String containing some test
data.
StringBufferInputStream is deprecated, and the documentation points to
StringReader.
However, after looking through java.io several times, I have not found
how to construct an InputStream from a Reader.
What is the proper, undeprecated, replacement code for:
> InputStream in = new StringBufferInputStream(someString);
InputStream in = new ByteArrayInputStream(someString.getBytes(encodin=
g));
must be a candidate.
Arne
Thanks.
That works, and gets rid of the warnings. But why does the
StringBufferInputStream documentation say "As of JDK 1.1, the preferred
way to create a stream from a string is via the StringReader class." if
StringReader cannot do StringBufferInputReader's job?
Patricia