Написал метод, который по идее должен обрабатывать блоки, запакованные GZip
Беда в том, что на выходе я получаю пустой массив байт. Где ошибка в этом коде?
private void DecompressionBlock(object x)
{
int i = (int)x;
int _DecompressSize = BitConverter.ToInt32(iDecompressSize[i], 0);
int _CompressSize = BitConverter.ToInt32(iCompressSize[i], 0);
Console.WriteLine("{0}", _DecompressSize); //1024
Console.WriteLine("{0}", _CompressSize); //732
Console.WriteLine("{0}", firstBuff[i].Length); //732
secondBuff[i] = new byte[_DecompressSize];
using (MemoryStream output = new MemoryStream())
{
using (GZipStream ds = new GZipStream(output, CompressionMode.Decompress))
{
ds.Read(firstBuff[i], 0, _CompressSize);
}
secondBuff[i] = output.ToArray();
Console.WriteLine("{0}", secondBuff[i].Length); //0
}
}
Если написать:
using (MemoryStream output = new MemoryStream(secondBuff[i]))
Во время работы возникает исключение, и ругань на "магическое число" GZip
В компрессоре я отдельно запаковывал каждый массив байтов GZip-ом, и добавлял на стадии записи в фал перед ним блоки с размерами, при чтении я эти данные читаю, и записываю в массив целый не тронутый никем блок для того же gZip.
Может я что-то упустил из виду?
Вот метод компрессии:
private void CompressionBlock(object x)
{
int i = (int)x;
using (MemoryStream output = new MemoryStream())
{
long _outLength;
using (GZipStream cs = new GZipStream(output, CompressionMode.Compress))
{
cs.Write(firstBuff[i], 0, firstBuff[i].Length);
_outLength = output.Length;
}
secondBuff[i] = new byte[_outLength];
secondBuff[i] = output.ToArray();
// Запишем размер сжатого блока
int _sizeBlock = secondBuff[i].Length;
Console.WriteLine("Размер сжатого блока - {0}", _sizeBlock);
iCompressSize[i] = new byte[4];
iCompressSize[i] = BitConverter.GetBytes(_sizeBlock);
}
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости