如何从内存中的字节创建“假”dart:io文件?

时间:2017-12-18 04:42:58

标签: dart flutter

我有一个“blob”的内存中字节,但是我想要处理这个“blob”的API只接受dart:io文件对象。

有没有办法创建一个“假的”dart:io文件,只是包装我的内存中的字节,以便我可以将这个“假”文件传递给我的API?

假设文件系统不存在,并假设我无法将内存中的字节写入“真实”文件。

谢谢!

3 个答案:

答案 0 :(得分:4)

pubspec.yaml

上添加路径提供程序依赖项
dependencies:
  path_provider: 0.2.2

将字节数据写入文件,使用它,然后将其删除。

import 'dart:io';
import 'package:path_provider/path_provider.dart';

main() async {
  String dir = (await getTemporaryDirectory()).path;
  File temp = new File('$dir/temp.file');
  var bytes = [0, 1, 2, 3, 4, 5];
  await temp.writeAsBytes(bytes);
  /*do something with temp file*/
  temp.delete();
}

答案 1 :(得分:1)

您可以使用file包中的MemoryFileSystem创建一个内存文件:

示例:

File file = MemoryFileSystem().file('test.dart')
  ..writeAsBytesSync(blobBytes);

答案 2 :(得分:-1)

有什么解决办法吗?如果您在 Flutter Web 上,显然无法将字节写入文件。