[英]Reading / Writing text file repeatedly / simultaneously
如何讀取和寫入文本文件而不會得到“文件已被其他應用程序使用”的異常?
我嘗試了File.readalltext()和File.Appendalltext()函數。我剛開始使用filestream。
在我的場景中哪種效果最好? 我也會感謝一些代碼snipplets ..
謝謝
這與打開文件時請求的鎖定和共享語義有關。
而不是使用File.ReadAllText()
的快捷方法,嘗試使用System.IO.FileStream
和System.IO.StreamReader
/ System.IO.StreamWriter
。
要打開文件:
using (var fileStream = new FileStream(@"c:\myFile", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (var streamReader = new StreamReader(fileStream))
{
var someText = streamReader.ReadToEnd();
}
注意FileShare.ReadWrite
- 這告訴流允許與其他讀者或其他作者共享。
寫作嘗試類似的東西
using (var fileStream = new FileStream(@"c:\myFile", FileMode.Create, FileAccess.Write, FileShare.Read))
using (var streamWriter = new StreamWriter(fileStream))
{
streamWriter.WriteLine("some text");
}
注意FileShare.Read
- 這告訴流只允許向讀者共享。
閱讀System.IO.FileStream
及其構造函數重載,您可以准確地定制它的行為以適合您的目的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.