簡體   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