gpt4 book ai didi

c# - 使用 TextWriter 时如何截断流

转载 作者:行者123 更新时间:2023-11-30 21:00:53 26 4
gpt4 key购买 nike

这段代码应该是不言自明的:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com