android/guava/src/com/google/common/io/CharStreams.java
private static StringBuilder toStringBuilder(Readable r) throws IOException {
    StringBuilder sb = new StringBuilder();
    if (r instanceof Reader) {
      copyReaderToBuilder((Reader) r, sb);
    } else {
      copy(r, sb);
    }
    return sb;
  }
private static StringBuilder toStringBuilder(Readable r) throws IOException {
    StringBuilder sb = new StringBuilder();
    if (r instanceof Reader) {
      copyReaderToBuilder((Reader) r, sb);
    } else {
      copy(r, sb);
    }
    return sb;
  }
Reads all characters from a {@link Readable} object into a new {@link StringBuilder} instance.
Does not close the {@code Readable}.

@param r the object to read from
@return a {@link StringBuilder} containing all the characters
@throws IOException if an I/O error occurs