Сжатие и распаковка массива C# с помощью GZipStream

dot-net-gzipНебольшой служебный класс для сжатия и распаковки с использованием алгоритма GZip, встроенный в класс .NET Framework GZipStream.

Класс GZipStream работает с потоками, поэтому нам нужно создать поток, чтобы иметь возможность его использовать. Т.е. GZipStream будет писать в поток, а также читать из потока.

КОМПРЕСС

Для функции Compress мы создадим MemoryStream и обернем его оператором using, чтобы он корректно удалялся при выходе из области видимости. Мы вкладываем создание GZipStream, передаем его в MemoryStream и устанавливаем оптимальный уровень сжатия.
Доступные уровни сжатия

rtfm Оптимальное. Может занять немного больше времени, но сжимает данные настолько хорошо, насколько это возможно
Самый быстрый. Будет выполнять быстрое сжатие, данные могут быть сжаты не полностью, но иногда это достаточно хорошо.
NoCompression. Не будет сжимать, просто закодируйте его как gzip
Затем нужно просто записать байтовый массив в GZipStream и вызвать функцию ToArray () в MemoryStream, чтобы получить базовый байтовый массив, который можно использовать.

РАСПАКОВКА

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

big_boss И затем снова с MemoryStream и GZipStream, на этот раз мы отправляем член перечисления Decompress, чтобы указать, что мы хотим распаковать поток.
Обратите внимание, что мы вызываем конструктор MemoryStream с входным байтовым массивом и используем GZipStream для считывания результирующего буфера с позиции 0 до несжатого размера данных.

Надеюсь, это кому нить поможет!

Перевод, оригинал Тут

Дессерт

Карманный справочник c#
Сегодня вашему вниманию предлагаем книгу: «КАрманный справочник по C#» от Джозефа и Бена Албахари. Кто-то скажет что книга устарела, хотя 2017 не так уж далек, что мол справочник по c# версии 7.0, а по двору уже давно 8-ка дефилирует, но это все не так важно, ведь фундаментальные основы никто не отменял, а потому книга будет интересна и профессионалам, чтобы вспомнить подзабытое, и новичкам, чтобы начать изучение с азов.

negative Скачать можно отсюда.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *