Spec-Zone.ru › Dart 2

dart:typed_data

Класс ByteData

Определяет последовательность байтов фиксированной длины с произвольным доступом, которая также обеспечивает произвольный и невыровненный доступ к целым числам фиксированной ширины и числам с плавающей точкой, представленным этими байтами.

Этот класс может использоваться для упаковки и распаковки данных из внешних источников (таких как сети или файловые системы) и для обработки больших объемов числовых данных более эффективно, чем это возможно с обычными реализациями List. Использование этого класса может сэкономить память, исключая необходимость в заголовках объектов, и время, исключая необходимость в копировании данных.

Если данные поступают в виде байтов, их можно преобразовать в ByteData , используя один и тот же буфер.

Uint8List bytes = ...;
var blob = ByteData.sublistView(bytes);
if (blob.getUint32(0, Endian.little) == 0x04034b50) { // Zip file marker
  ...
}

Наконец, ByteData может быть использован для преднамеренного повторного интерпретирования байтов, представляющих один арифметический тип, как другой. Например, этот фрагмент кода определяет, какое 32-битное знаковое целое число представлено байтами 32-битного числа с плавающей точкой (оба хранятся в формате big endian):

var bdata = ByteData(8);
bdata.setFloat32(0, 3.04);
int huh = bdata.getInt32(0); // 0x40428f5c
Реализованные типы
  • TypedData
Реализации
  • UnmodifiableByteDataView

Конструкторы

ByteData(int length)
factory
Создает объект ByteData указанной длины (в элементах), все байты которого изначально равны нулю.
ByteData.sublistView(TypedData data, [int start = 0, int? end])
factory
Создает представление ByteData на диапазоне элементов объекта data.
ByteData.view(ByteBuffer buffer, [int offsetInBytes = 0, int? length])
factory
Создает представление ByteData указанного региона в buffer.

Свойства

buffer → ByteBuffer
только для чтения, унаследованное
Возвращает связанный с этим объектом байтовый буфер.
elementSizeInBytes → int
только для чтения, унаследованное
Возвращает количество байтов в представлении каждого элемента в этом списке.
hashCode → int
только для чтения, унаследованное
Хэш-код этого объекта.
lengthInBytes → int
только для чтения, унаследованное
Возвращает длину этого представления в байтах.
offsetInBytes → int
только для чтения, унаследованное
Возвращает смещение в байтах в базовом байтовом буфере этого представления.
runtimeType → Type
только для чтения, унаследованное
Представление типа объекта в ходе выполнения.

Методы

getFloat32(int byteOffset, [Endian endian = Endian.big]) → double
Возвращает число с плавающей точкой, представленное четырьмя байтами по указанному byteOffset в этом объекте, в формате IEEE 754 с одинарной точностью (binary32).
getFloat64(int byteOffset, [Endian endian = Endian.big]) → double
Возвращает число с плавающей точкой, представленное восемью байтами по указанному byteOffset в этом объекте, в формате IEEE 754 с двойной точностью (binary64).
getInt16(int byteOffset, [Endian endian = Endian.big]) → int
Возвращает целое число (возможно отрицательное) представленное двумя байтами по указанному byteOffset в этом объекте, в двоичном формате со знаком, дополнения до двух.
getInt32(int byteOffset, [Endian endian = Endian.big]) → int
Возвращает целое число (возможно отрицательное) представленное четырьмя байтами по указанному byteOffset в этом объекте, в двоичном формате со знаком, дополнения до двух.
getInt64(int byteOffset, [Endian endian = Endian.big]) → int
Возвращает целое число (возможно отрицательное) представленное восемью байтами по указанному byteOffset в этом объекте, в двоичном формате со знаком, дополнения до двух.
getInt8(int byteOffset) → int
Возвращает целое число (возможно отрицательное) представленное байтом по указанному byteOffset в этом объекте, в двоичном формате со знаком, дополнения до двух.
getUint16(int byteOffset, [Endian endian = Endian.big]) → int
Возвращает положительное целое число, представленное двумя байтами, начиная с указанного byteOffset в этом объекте, в беззнаковом двоичном формате.
getUint32(int byteOffset, [Endian endian = Endian.big]) → int
Возвращает положительное целое число, представленное четырьмя байтами, начиная с указанного byteOffset в этом объекте, в беззнаковом двоичном формате.
getUint64(int byteOffset, [Endian endian = Endian.big]) → int
Возвращает положительное целое число, представленное восемью байтами, начиная с указанного byteOffset в этом объекте, в беззнаковом двоичном формате.
getUint8(int byteOffset) → int
Возвращает положительное целое число, представленное байтом по указанному byteOffset в этом объекте, в беззнаковом двоичном формате.
noSuchMethod(Invocation invocation) → dynamic
inherited
Вызывается, когда обращаются к несуществующему методу или свойству.
setFloat32(int byteOffset, double value, [Endian endian = Endian.big]) → void
Задает четыре байта, начиная с указанного byteOffset в этом объекте, представлению числа с плавающей точкой IEEE 754 одинарной точности (binary32) заданного value.
setFloat64(int byteOffset, double value, [Endian endian = Endian.big]) → void
Задает восемь байтов, начиная с указанного byteOffset в этом объекте, представлению числа с плавающей точкой IEEE 754 двойной точности (binary64) заданного value.
setInt16(int byteOffset, int value, [Endian endian = Endian.big]) → void
Задает два байта, начиная с указанного byteOffset в этом объекте, двоичному представлению со знаком, дополнения до двух, заданного value, которое должно уместиться в двух байтах.
setInt32(int byteOffset, int value, [Endian endian = Endian.big]) → void
Задает четыре байта, начиная с указанного byteOffset в этом объекте, двоичному представлению со знаком, дополнения до двух, заданного value, которое должно уместиться в четырёх байтах.
setInt64(int byteOffset, int value, [Endian endian = Endian.big]) → void
Задает восемь байтов, начиная с указанного byteOffset в этом объекте, двоичному представлению со знаком, дополнения до двух, заданного value, которое должно уместиться в восьми байтах.
setInt8(int byteOffset, int value) → void
Задает байт по указанному byteOffset в этом объекте, двоичному представлению со знаком, дополнения до двух, заданного value, которое должно уместиться в одном байте.
setUint16(int byteOffset, int value, [Endian endian = Endian.big]) → void
Задает два байта, начиная с указанного byteOffset в этом объекте, беззнаковому двоичному представлению заданного value, которое должно уместиться в двух байтах.
setUint32(int byteOffset, int value, [Endian endian = Endian.big]) → void
Задает четыре байта, начиная с указанного byteOffset в этом объекте, беззнаковому двоичному представлению заданного value, которое должно уместиться в четырёх байтах.
setUint64(int byteOffset, int value, [Endian endian = Endian.big]) → void
Задает восемь байтов, начиная с указанного byteOffset в этом объекте, беззнаковому двоичному представлению заданного value, которое должно уместиться в восьми байтах.
setUint8(int byteOffset, int value) → void
Задает байт по указанному byteOffset в этом объекте, беззнаковому двоичному представлению заданного value, которое должно уместиться в одном байте.
toString() → String
inherited
Строковое представление этого объекта.

Операторы

operator ==(Object other) → bool
inherited
Оператор равенства.

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-typed_data/ByteData-class.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API