我在一個字符串變量中有一個巨大的HTML內容,我想使用流寫入器將該內容寫入文本文件,但流寫入器正在截斷文本。它不是要提交整個內容。我正在使用以下代碼: -StreamWriter在寫入文本文件時截斷文本
using (StreamWriter sw = new StreamWriter(completeFilePath))
{
sw.Write(Html);
}
其中Html是字符串類型變量。請幫忙。
我在一個字符串變量中有一個巨大的HTML內容,我想使用流寫入器將該內容寫入文本文件,但流寫入器正在截斷文本。它不是要提交整個內容。我正在使用以下代碼: -StreamWriter在寫入文本文件時截斷文本
using (StreamWriter sw = new StreamWriter(completeFilePath))
{
sw.Write(Html);
}
其中Html是字符串類型變量。請幫忙。
假設Html
是一個包含HTML的字符串變量,請嘗試在sw.Write()
之後調用sw.Flush()
。這應該強制流寫入器將字符串的其餘部分寫入文件。如果文件仍被截斷,請確保Html包含完整的HTML。
Dispose中的流是否不沖洗? – 2013-03-22 07:34:13
@lazyberezovsky它應該但是這將在沒有任何其他代碼的情況下明確排除問題的流,例如創建Html。 – akton 2013-03-22 07:36:28
好,同意。等待OP – 2013-03-22 07:38:04
寫入後,使用Flush方法清除緩衝區。
sw.Write(Html);
sw.Flush();
的Html創建代碼,這解決了我的問題。我試圖完成類似的任務。在某些情況下,正在寫入的html被截斷,其他情況下根本沒有寫入任何內容。讓我想知道'Flush()'實際上在解決這個問題。 – 2015-01-26 01:19:18
@Adeel這是我的問題,緩衝區大約2或4kb,因此它實際上可以將整個文本文件保存在內存中,永遠不會寫出來。我正在拔出頭髮,試圖弄清楚琴絃的區別。 – Caperneoignis 2016-05-05 15:00:36
如果尺寸過大,
using (StreamWriter sw = new StreamWriter(completeFilePath))
{
sw.Write(Html);
//just to make sure the stream writer flushes the command
sw.Flush();
}
如果規模沒有那麼大,我建議使用File.WriteAllText方法
//no need to Open or Close anything
File.WriteAllText(Path, Html);
什麼是'Html'? – 2013-03-22 07:30:38
哪裏是你分配給'html'的代碼?它是否總是截斷到相同的最大長度? – jordanhill123 2013-03-22 07:32:28
您是否在使用說明結束前檢查?因爲using語句隱式調用Dispose(),當它落在範圍之外時,會自動調用Flush()。 – 2017-03-02 22:02:13