组合一组 Uint8List

dat*_*tto 7 dart

我正在构建一堆Uint8List(不同大小,现在它们存储在通用列表中),我需要在发送到 websocket 之前组合/连接它们。

最好的方法是什么?

我虽然将它们组合在一个新的 Uint8List 中,但由于组合后我不再需要字节访问,我可以使用不同的List<int>实现......?

提前致谢。

Max*_*lin 18

使用BytesBuilder似乎是在 Dart 中连接 Uint8List 的最有效方法:

  var b = BytesBuilder();
  var l1 = Uint8List(4);
  var l2 = Uint8List(4);
  b.add(l1);
  b.add(l2);
  var ll = b.toBytes();
Run Code Online (Sandbox Code Playgroud)


Gün*_*uer 7

Uint8List实现List<int>. 您可以将它们组合成一个新的List<int>,然后创建一个新Uint8List

List<List<int>> myByteLists = ...;
var bytes = Uint8List.fromList(myByteList.expand((x) => x).toList());
Run Code Online (Sandbox Code Playgroud)