[英]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.