code: public DataStreamSource<String> readTextFile(String filePath, String charsetName) {
  		Preconditions.checkArgument(!StringUtils.isNullOrWhitespaceOnly(filePath), "The file path must not be null or blank.");
  
  		TextInputFormat format = new TextInputFormat(new Path(filePath));
  		format.setFilesFilter(FilePathFilter.createDefaultFilter());
  		TypeInformation<String> typeInfo = BasicTypeInfo.STRING_TYPE_INFO;
  		format.setCharsetName(charsetName);
  
  		return readFile(format, filePath, FileProcessingMode.PROCESS_ONCE, -1, typeInfo);
  	}
docs: Reads the given file line-by-line and creates a data stream that contains a string with the
  contents of each such line. The {@link java.nio.charset.Charset} with the given name will be
  used to read the files.
  
  <p><b>NOTES ON CHECKPOINTING: </b> The source monitors the path, creates the
  {@link org.apache.flink.core.fs.FileInputSplit FileInputSplits} to be processed,
  forwards them to the downstream {@link ContinuousFileReaderOperator readers} to read the actual data,
  and exits, without waiting for the readers to finish reading. This implies that no more checkpoint
  barriers are going to be forwarded after the source exits, thus having no checkpoints after that point.
  
  @param filePath
  The path of the file, as a URI (e.g., "file:///some/local/file" or "hdfs://host:port/file/path")
  @param charsetName
  The name of the character set used to read the file
  @return The data stream that represents the data read from the given file as text lines