Flutter Dart writeAsBytes 方法

10 min read

源码

Future<File> writeAsBytes(List<int> bytes,
      {FileMode mode = FileMode.write, bool flush = false});

将一个字节列表写到一个文件中。

打开文件,将字节列表写入其中,然后关闭文件。整个操作完成后,返回与此 File 对象一起完成的 Future<File>

默认情况下,writeAsBytes创建用于写入的文件,如果文件已经存在,则将其截断。为了将字节追加到现有文件,请将FileMode.append作为可选的mode参数传递。

如果参数 flush 设置为 true ,则在返回的future完成之前,写入的数据将被刷新到文件系统。

文件模式FileMode的常量

常量值 说明
read 只读模式
write 可读可写模式,如果文件存在则会覆盖
append 追加模式,可读可写,文件存在则往末尾追加
writeOnly 只写模式
writeOnlyAppend 只写模式下的追加模式,不可读

Flutter保存文件到本地

if (imageBytes != null) {
  final directory = await getApplicationDocumentsDirectory();
  final imagePath = await File('${directory.path}/container_image.png').create();
  await imagePath.writeAsBytes(imageBytes);
}