Класс ByteData
Последовательность байтов фиксированной длины с произвольным доступом, которая также предоставляет произвольный и невыровненный доступ к целым числам фиксированной ширины и числам с плавающей запятой, представленным этими байтами.
Его можно использовать для упаковки и распаковки данных из внешних источников (таких как сети или файловые системы) и для обработки больших объемов числовых данных более эффективно, чем это возможно с обычными реализациями List. Он может экономить место, исключая необходимость в заголовках объектов, и время, исключая необходимость в копиях данных. Наконец, его можно использовать для преднамеренного повторного интерпретирования байтов, представляющих один арифметический тип, как другой. Например, этот фрагмент кода определяет, какое 32-битное целое число со знаком представлено байтами 32-битного числа с плавающей запятой:
var buffer = new Uint8List(8).buffer; var bdata = new ByteData.view(buffer); bdata.setFloat32(0, 3.04); int huh = bdata.getInt32(0);
- Реализует
Конструкторы
- ByteData(int length) factory
-
Создаёт ByteData указанной длины (в элементах), все байты которого изначально равны нулю.
- ByteData.view(ByteBuffer buffer, [ int offsetInBytes = 0, int length ]) factory
-
Создаёт ByteData вид указанного региона в
buffer.
Свойства
- buffer → ByteBuffer только для чтения, унаследованное
-
Возвращает буфер байтов, связанный с этим объектом.
- elementSizeInBytes → int только для чтения, унаследованное
-
Возвращает количество байтов в представлении каждого элемента в этом списке.
- hashCode → int только для чтения, унаследованное
-
Хеш-код этого объекта.
- lengthInBytes → int только для чтения, унаследованное
-
Возвращает длину этого представления в байтах.
- offsetInBytes → int только для чтения, унаследованное
-
Возвращает смещение в байтах в базовом буфере байтов этого представления.
- runtimeType → Type только для чтения, унаследованное
-
Представление типа времени выполнения объекта.
Операторы
- operator ==(
other) → bool унаследованное -
Оператор равенства.
Методы
- getFloat32(
int byteOffset, [ Endianness endian = Endianness.BIG_ENDIAN ]) → double -
Возвращает число с плавающей точкой, представленное четырьмя байтами по указанному
byteOffsetв этом объекте, в формате IEEE 754 с одинарной точностью (binary32). - getFloat64(
int byteOffset, [ Endianness endian = Endianness.BIG_ENDIAN ]) → double -
Возвращает число с плавающей точкой, представленное восемью байтами по указанному
byteOffsetв этом объекте, в формате IEEE 754 с двойной точностью (binary64). - getInt8(
int byteOffset) → int -
Возвращает (возможно, отрицательное) целое число, представленное байтом по указанному
byteOffsetв этом объекте, в двоичном представлении со знаком (two's complement). - getInt16(
int byteOffset, [ Endianness endian = Endianness.BIG_ENDIAN ]) → int -
Возвращает (возможно, отрицательное) целое число, представленное двумя байтами по указанному
byteOffsetв этом объекте, в двоичном формате со знаком (two's complement). - getInt32(
int byteOffset, [ Endianness endian = Endianness.BIG_ENDIAN ]) → int -
Возвращает (возможно, отрицательное) целое число, представленное четырьмя байтами по указанному
byteOffsetв этом объекте, в двоичном формате со знаком (two's complement). - getInt64(
int byteOffset, [ Endianness endian = Endianness.BIG_ENDIAN ]) → int -
Возвращает (возможно, отрицательное) целое число, представленное восемью байтами по указанному
byteOffsetв этом объекте, в двоичном формате со знаком (two's complement). - getUint8(
int byteOffset) → int -
Возвращает положительное целое число, представленное байтом по указанному
byteOffsetв этом объекте, в беззнаковом двоичном формате. - getUint16(
int byteOffset, [ Endianness endian = Endianness.BIG_ENDIAN ]) → int -
Возвращает положительное целое число, представленное двумя байтами, начиная с указанного
byteOffsetв этом объекте, в беззнаковом двоичном формате. - getUint32(
int byteOffset, [ Endianness endian = Endianness.BIG_ENDIAN ]) → int -
Возвращает положительное целое число, представленное четырьмя байтами, начиная с указанного
byteOffsetв этом объекте, в беззнаковом двоичном формате. - getUint64(
int byteOffset, [ Endianness endian = Endianness.BIG_ENDIAN ]) → int -
Возвращает положительное целое число, представленное восемью байтами, начиная с указанного
byteOffsetв этом объекте, в беззнаковом двоичном формате. - setFloat32(
int byteOffset, double value, [ Endianness endian = Endianness.BIG_ENDIAN ]) → void -
Устанавливает четыре байта, начиная с указанного
byteOffsetв этом объекте, в представление с плавающей точкой IEEE 754 одинарной точности (binary32) указанногоvalue. - setFloat64(
int byteOffset, double value, [ Endianness endian = Endianness.BIG_ENDIAN ]) → void -
Устанавливает восемь байтов, начиная с указанного
byteOffsetв этом объекте, в представление с плавающей точкой IEEE 754 двойной точности (binary64) указанногоvalue. - setInt8(
int byteOffset, int value) → void -
Устанавливает байт по указанному
byteOffsetв этом объекте в двоичном представлении со знаком (two's complement) указанногоvalue, который должен уместиться в одном байте. - setInt16(
int byteOffset, int value, [ Endianness endian = Endianness.BIG_ENDIAN ]) → void -
Устанавливает два байта, начиная с указанного
byteOffsetв этом объекте, в двоичном представлении со знаком (two's complement) указанногоvalue, который должен уместиться в двух байтах. - setInt32(
int byteOffset, int value, [ Endianness endian = Endianness.BIG_ENDIAN ]) → void -
Устанавливает четыре байта, начиная с указанного
byteOffsetв этом объекте, в двоичном представлении со знаком (two's complement) указанногоvalue, который должен уместиться в четырёх байтах. - setInt64(
int byteOffset, int value, [ Endianness endian = Endianness.BIG_ENDIAN ]) → void -
Устанавливает восемь байтов, начиная с указанного
byteOffsetв этом объекте, в двоичном представлении со знаком (two's complement) указанногоvalue, который должен уместиться в восьми байтах. - setUint8(
int byteOffset, int value) → void -
Устанавливает байт по указанному
byteOffsetв этом объекте в беззнаковом двоичном представлении указанногоvalue, который должен уместиться в одном байте. - setUint16(
int byteOffset, int value, [ Endianness endian = Endianness.BIG_ENDIAN ]) → void -
Устанавливает два байта, начиная с указанного
byteOffsetв этом объекте, в беззнаковом двоичном представлении указанногоvalue, который должен уместиться в двух байтах. - setUint32(
int byteOffset, int value, [ Endianness endian = Endianness.BIG_ENDIAN ]) → void -
Устанавливает четыре байта, начиная с указанного
byteOffsetв этом объекте, в беззнаковом двоичном представлении указанногоvalue, который должен уместиться в четырёх байтах. - setUint64(
int byteOffset, int value, [ Endianness endian = Endianness.BIG_ENDIAN ]) → void -
Устанавливает восемь байтов, начиная с указанного
byteOffsetв этом объекте, в беззнаковом двоичном представлении указанногоvalue, который должен уместиться в восьми байтах. - noSuchMethod(
Invocation invocation) → dynamic inherited -
Вызывается при попытке обратиться к несуществующему методу или свойству.
- toString(
) → String inherited -
Возвращает строковое представление этого объекта.
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-typed_data/ByteData-class.html