本文介绍了如何在Dart中将`ByteData`实例写入文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Flutter将资产加载到文件
中,以便本机应用程序可以访问它。
这是我加载资产的方式:
final dbBytes =等待rootBundle.load('assets / file');
这将返回 ByteData
的实例。 / p>
如何将其写入 dart.io.File
实例?
解决方案
是以下内容的抽象:
如评论中的Gunter所述,您可以使用。从 ByteData
到 List< int>
确实需要一些API工作。
import'dart:async';
导入 dart:io;
导入 dart:typed_data;
Future< void> writeToFile(ByteData data,String path){
最终缓冲区= data.buffer;
返回新File(path).writeAsBytes(
buffer.asUint8List(data.offsetInBytes,data.lengthInBytes));
}
我也,以使此使用案例的Flutter文档更加清晰。
I am using Flutter to load an "asset" into a File
so that a native application can access it.
This is how I load the asset:
final dbBytes = await rootBundle.load('assets/file');
This returns an instance of ByteData
.
How can I write this to a dart.io.File
instance?
解决方案
ByteData
is an abstraction for:
As Gunter mentioned in the comments, you can use File.writeAsBytes
. It does require a bit of API work to get from ByteData
to a List<int>
, however.
import 'dart:async';
import 'dart:io';
import 'dart:typed_data';
Future<void> writeToFile(ByteData data, String path) {
final buffer = data.buffer;
return new File(path).writeAsBytes(
buffer.asUint8List(data.offsetInBytes, data.lengthInBytes));
}
I've also filed an issue to make the docs on Flutter more clear for this use case.
这篇关于如何在Dart中将`ByteData`实例写入文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!