in src/main/java/org/apache/commons/text/StrBuilder.java [2423:2451]
public int readFrom(final Readable readable) throws IOException {
final int oldSize = size;
if (readable instanceof Reader) {
final Reader r = (Reader) readable;
ensureCapacity(size + 1);
int read;
while ((read = r.read(buffer, size, buffer.length - size)) != -1) {
size += read;
ensureCapacity(size + 1);
}
} else if (readable instanceof CharBuffer) {
final CharBuffer cb = (CharBuffer) readable;
final int remaining = cb.remaining();
ensureCapacity(size + remaining);
cb.get(buffer, size, remaining);
size += remaining;
} else {
while (true) {
ensureCapacity(size + 1);
final CharBuffer buf = CharBuffer.wrap(buffer, size, buffer.length - size);
final int read = readable.read(buf);
if (read == -1) {
break;
}
size += read;
}
}
return size - oldSize;
}