後立即StreamReading文件:StreamWriting考慮到本示例代碼相同的文件
1: using (StreamWriter sw = new StreamWriter(@"C:\file.txt"))
2: {
3: sw.WriteLine(great_string);
4: }
5:
6: using (StreamReader sr = new StreamReader(@"C:\file.txt"))
7: {
8: sr.ReadToEnd();
9: }
是否有可能寫在3號線的great_string
不會出現在C:\file.txt
時StreamReader.ReadToEnd
被稱爲第8行?在我看來,這是可能的,因爲你的平均CPU工作速度比你的平均硬盤快得多,但我今天一直在測試,到目前爲止,當我在線閱讀文件時,第3行寫的字符串總是存在的8.我想,也許using
聲明不會關閉流,直到所有的數據寫入/讀取文件,從而防止我所問的情況。
我一直在閱讀有關MSDN上的StreamWriter.Close方法,並聲明如下:
必須調用關閉,以確保所有數據被正確地寫入到底層流。
但它沒有說數據將被寫出到底層流。
在此先感謝有關此主題的任何信息。我確實在尋找這個問題的答案,但我沒有找到任何東西......我不知道要搜索什麼條款。
「如果不是這種情況,編寫可靠的程序將會很困難,因爲效果的順序可能會隨着功能甚至過程而任意改變,這將是混亂的,因此係統保證了順序的一致性。 ---我在腦海裏想着一個類似的東西,但我不知道怎麼說。謝謝,這非常有幫助。 –