readBySink method

Future<String> readBySink(
  1. File file,
  2. FileMode? fileMode
)

以流的方式读取文件

Implementation

Future<String> readBySink(File file, FileMode? fileMode) async {
  String content = "";
  //检查文件是否存在 existsSync() 同步检查文件是否存在
  final fileExists = await file.exists();

  ///如果文件不存在,创建文件
  if (!fileExists) {
    return content;
  }
  final StringBuffer buffer = StringBuffer();
  final Stream<List<int>> inputStream = file.openRead();

  inputStream.transform(utf8.decoder).transform(const LineSplitter()).listen((data) {
    buffer.write(data);
  }, onDone: () {
    content = buffer.toString();
    logger.d(content);
  }, onError: (e) {
    content = "";
    logger.e(tag: TAG, e);
  });
  return content;
}