这个片段应该是不言自明的:
XDocument xd = ....
using (FileStream fs = new FileStream("test.txt", FileMode.Open, FileAccess.ReadWrite))
{
using (TextWriter tw = new StreamWriter(fs))
{
xd.Save(tw);
}
fs.Flush();
fs.SetLength(fs.Position);
}
我想XDocument
使用 a 将我的流序列化为流TextWriter
,然后在流结束后截断流。不幸的是,该Save()
操作似乎关闭了流,所以我的Flush()
调用生成了一个异常。
在现实世界中,我实际上并没有序列化到文件,而是我无法控制的其他类型的流,所以这不仅仅是先删除文件那么简单。