我正试图将一个大的UInt16数组保存到文件中。positionCnt大约为50000,stationCnt大约为2500。如果直接保存而不使用GZipStream,则文件大小约为250MB,可以通过外部压缩程序压缩到19MB。使用以下代码后,文件大小为507MB。我做错了什么?
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();