code: public Reader createReader(byte[] cachedBytes) throws IOException {
  	if (cachedBytes != null) {
  	    return new InputStreamReader(new ByteArrayInputStream(cachedBytes));
  	}
          if (inputStream != null) {
              return new InputStreamReader(inputStream, charset);
          }
          if (reader != null) {
              return reader;
          }
          return new InputStreamReader(new FileInputStream(file), charset);
      }
docs: If cachedBytes are not null, returns a Reader created from the cachedBytes.
  Otherwise, returns a Reader from the underlying source.