繁体   English   中英

如何在Windows XP上成功关闭TextWriter流?

[英]How can I close the TextWriter stream on Windows XP successfully?

我有一个类似以下代码的代码可用于处理TextWriter流。

TextWriter TR = new StreamWriter(@"")

try
{

    //Logic

}
catch (Exception exception)
{

    //Error Reporting

}
finally
{

    if (TR != null)
        TR.Close();

}

我的.Net版本是4.0,此代码在Windows 7上可以正常运行,但在Windows XP上则不能正常运行! 似乎流没有关闭,并且许多缓冲区未写入文件! 我不知道! 谁能帮我解决这个问题?

听起来问题不是不是流没有关闭,而是流在写入之前就已经关闭了。 对于大多数流输出,您将需要在关闭流之前刷新输出流以确保已写入更改。 如果您不这样做,那么未刷新的数据将丢失,这听起来很像您所看到的。

正如杰拉尔德(Gerald)建议的那样,我还建议

using(var writer = new StreamWriter(@"")
{
    // ...

    writer.Flush();
} 

格式,因为虽然它最终获得的效果与try {...}最终{...}大致相同,但它更优雅一些,并且更容易正确使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM