Я пытаюсь сохранить большой массив UInt16 в файл. positionCnt составляет около 50000, stationCnt составляет около 2500. Сохраненный напрямую, без GZipStream, файл имеет размер около 250 МБ, который может быть сжат внешней программой zip до 19 МБ. Со следующим кодом размер файла составляет 507 МБ. Что я делаю неправильно?
GZipStream cmp = new GZipStream(File.Open(cacheFileName, FileMode.Create), CompressionMode.Compress);
BinaryWriter fs = new BinaryWriter(cmp);
fs.Write((Int32)(positionCnt * stationCnt));
for (int p = 0; p < positionCnt; p++)
{
for (int s = 0; s < stationCnt; s++)
{
fs.Write(BoundData[p, s]);
}
}
fs.Close();