使用gzipstream将压缩的XML数据写入内存流
本文关键字:内存 数据 XML gzipstream 压缩 使用 | 更新日期: 2023-09-27 18:05:29
我正在尝试将压缩的xml数据写入内存流。以下是我的测试控制台应用程序代码:
var ms = new MemoryStream();
var gstream = new GZipStream(ms, CompressionMode.Compress);
var settings = new XmlWriterSettings();
settings.Indent = true;
var writer = XmlWriter.Create(gstream, settings);
writer.WriteStartElement("x", "root", "123");
writer.WriteStartElement("item");
writer.WriteAttributeString("xmlns", "x", null, "abc");
writer.WriteEndElement();
writer.WriteEndElement();
Console.WriteLine("Data length: " + ms.ToArray().Length);
writer.Close();
gstream.Close();
ms.Close();
Console.ReadLine();
输出为:
Data length: 0
我做错了什么?谢谢你。
必须关闭写入器才能刷新流。只需将代码更改为:
writer.Close();
gstream.Close();
ms.Close();
Console.WriteLine("Data length: " + ms.ToArray().Length);