我已经尝试过保存在文本文件中(显然它需要更多空间,因为它没有像 Excel 那样定制来保存表格)。我还尝试保留序列化数据(c#,仅供参考)。在这两种情况下都没有任何好处。
问问题
130 次
1 回答
5
由于大多数“表格”数据将是文本,因此在保存之前压缩它会获得很大的收益(以 GZip 和 BsonWriter 为例):
public static byte[] Compress(object entity)
{
using (var stream = new MemoryStream())
{
using (var zipStream = new GZipStream(stream, CompressionLevel.Optimal))
{
using (var writer = new BsonWriter(zipStream))
{
var serializer = new JsonSerializer();
serializer.Serialize(writer, entity);
}
}
return stream.ToArray();
}
}
** 更新 **
Protobuf在序列化实体大小和速度方面都远远优于 XmlSerializer和BinaryFormatter。在压缩之前尝试使用它来序列化您的实体:
public static byte[] Compress(object entity)
{
using (var stream = new MemoryStream())
{
using (var zipStream = new GZipStream(stream, CompressionLevel.Optimal))
{
Serializer.Serialize(stream, entity);
}
return stream.ToArray();
}
}
于 2012-10-11T13:06:53.860 回答