android/guava/src/com/google/common/io/CharSource.java
public BufferedReader openBufferedStream() throws IOException {
    Reader reader = openStream();
    return (reader instanceof BufferedReader)
        ? (BufferedReader) reader
        : new BufferedReader(reader);
  }
public BufferedReader openBufferedStream() throws IOException {
    Reader reader = openStream();
    return (reader instanceof BufferedReader)
        ? (BufferedReader) reader
        : new BufferedReader(reader);
  }
Opens a new {@link BufferedReader} for reading from this source. This method returns a new,
independent reader each time it is called.

<p>The caller is responsible for ensuring that the returned reader is closed.

@throws IOException if an I/O error occurs while of opening the reader