longbkit , Спасибо за эту ссылку.Там есть код:
public static void CompressData(byte[] inData, out byte[] outData)
{
using (MemoryStream outMemoryStream = new MemoryStream())
using (ZOutputStream outZStream = new ZOutputStream(outMemoryStream, zlibConst.Z_DEFAULT_COMPRESSION))
using (Stream inMemoryStream = new MemoryStream(inData))
{
CopyStream(inMemoryStream, outZStream);
outZStream.finish();
outData = outMemoryStream.ToArray();
}
}
public static void DecompressData(byte[] inData, out byte[] outData)
{
using (MemoryStream outMemoryStream = new MemoryStream())
using (ZOutputStream outZStream = new ZOutputStream(outMemoryStream))
using (Stream inMemoryStream = new MemoryStream(inData))
{
CopyStream(inMemoryStream, outZStream);
outZStream.finish();
outData = outMemoryStream.ToArray();
}
}
public static void CopyStream(System.IO.Stream input, System.IO.Stream output)
{
byte[] buffer = new byte[2000];
int len;
while ((len = input.Read(buffer, 0, 2000)) > 0)
{
output.Write(buffer, 0, len);
}
output.Flush();
}
Работает.Но то, что я вижу, это единственное различие между Сжатие и Декомпрессия - это Тип сжатия в конструкторе ZOutput ...
Удивительно.Для меня было бы более понятно, если бы Compression назывался Output, а Decompression - Input.или такой ... на самом деле это только Вывод.
❋ пользователь "Джон Смит" сломал оригинальный код, поскольку CopyTo не работает и вызывает исключение в его отредактированном тексте (и дважды одобрен другими)Возврат к исходному коду с помощью OP.Пожалуйста, проверьте отредактированный код в следующий раз перед редактированием, спасибо.