code: public Reader getReader() {
          InputStream inputStream = fInputStream;
  
          if (inputStream == null) {
              inputStream = new ByteArrayInputStream(fRawInput, 0, fRawLength);
          }
  
          try {
              inputStream.reset();
              return new InputStreamReader(inputStream, getName());
          } catch (IOException e) {
              return null;
          }
      }
docs: Create a java.io.Reader for reading the Unicode character data corresponding
  to the original byte data supplied to the Charset detect operation.
  <p>
  CAUTION:  if the source of the byte data was an InputStream, a Reader
  can be created for only one matching char set using this method.  If more
  than one charset needs to be tried, the caller will need to reset
  the InputStream and create InputStreamReaders itself, based on the charset name.
  
  @return the Reader for the Unicode character data.