本文介绍了如何在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`实例写入文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-17 07:02