РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
558 of 723 menu

Класс ByteConversionSink

Класс ByteConversionSink представляет собой приемник для преобразования байтовых данных. Он используется в цепочках потоковых преобразователей, когда необходимо принимать байты по частям и передавать их дальше в следующий преобразователь или накопитель. В контексте JSON этот класс применяется совместно с кодеками, например с Utf8Encoder, для потокового кодирования данных. Класс является абстрактным: напрямую его экземпляр не создается, а объекты получаются через методы startChunkedConversion соответствующих преобразователей.

Синтаксис

abstract class ByteConversionSink extends Sink<List<int>>

Пример

Давайте получим объект ByteConversionSink через кодировщик utf8 и добавим в него байты строки в кодировке ASCII:

import 'dart:convert'; void main() { String str = 'abcde'; List<int> bytes = ascii.encode(str); ByteConversionSink sink = utf8.encoder.startChunkedConversion( StringConversionSink.fromStringSink(StringBuffer()) ); sink.add(bytes); sink.close(); print(bytes); }

Результат выполнения кода:

[97, 98, 99, 100, 101]

Пример

Давайте проверим, что ByteConversionSink принимает данные порциями и корректно закрывается после завершения передачи:

import 'dart:convert'; void main() { String str = '12345'; ByteConversionSink sink = utf8.encoder.startChunkedConversion( StringConversionSink.fromStringSink(StringBuffer()) ); sink.add(ascii.encode(str.substring(0, 2))); sink.add(ascii.encode(str.substring(2))); sink.close(); print('sink closed'); }

Результат выполнения кода:

"sink closed"

Смотрите также

  • класс Utf8Encoder,
    который создает приемник для кодирования в UTF-8
  • класс Utf8Codec,
    который предоставляет кодировщик и декодер UTF-8
  • класс JsonCodec,
    который выполняет кодирование и декодирование JSON
  • метод encode,
    который преобразует объект в JSON-строку
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить