作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这段代码应该是不言自明的:
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);
}
我想使用 TextWriter
将我的 XDocument
序列化为流,然后在结束后截断流。不幸的是,Save()
操作似乎关闭了流,所以我的 Flush()
调用产生了异常。
在现实世界中,我实际上并没有序列化到一个文件,而是我无法控制的其他类型的流,所以这不是简单的先删除文件。
最佳答案
如果你想刷新流,你需要这样做
using (FileStream fs = new FileStream("test.txt", FileMode.Open, FileAccess.ReadWrite))
{
using (TextWriter tw = new StreamWriter(fs))
{
tw.Flush();
xd.Save(tw);
fs.SetLength(fs.Position);
}
}
关于c# - 使用 TextWriter 时如何截断流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14629429/
我是一名优秀的程序员,十分优秀!