2014-01-30 44 views
0

我有一個文本文件,它不斷從服務器數據中更新。現在根據我的要求,一旦將新行寫入文本文件,我必須閱讀這一行,並對其進行處理,然後對所有寫入文本文件的新行重複此操作。爲此,我必須連續讀取文本文件。對於我已嘗試使用FileSystemWatcher,但後來才知道這將是非常昂貴和低效率。 我現在想使用FileShare.ReadWrite.Here是我的FileShare.ReadWrite模式代碼中使用連續讀取..如何在C#中使用FileShare.ReadWrite模式連續讀取文本文件#

if (System.IO.File.Exists(FileToCopy) == true) 
{ 
    var fs = new FileStream(FileToCopy, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); 
    using (var reader = new StreamReader(fs)) 
    { 
     string line; 
     string rawcdr; 
     while (true) 
     { 
      while ((line = reader.ReadLine()) != null) 
      { 
      } 
     } 
    } 
} 

所以我要問的是正確的方式來連續讀取一個文件或文件完成後會停止嗎? 它會不斷觀看新文件的文件?

回答

1

閱讀器將停在最後並關閉文件(如果您在代碼中保留using)。

您可以通過Reader.BaseStream(注意關於重置內部緩衝區的注意事項)檢查文件大小和位置閱讀器(配置爲不對Unicode編碼使用BOM)以最後讀取位置。

請注意,這兩個過程需要合作挑選開放模式,就好像作家不允許共享,您將不得不閱讀,重新打開並尋找。

+0

什麼是最好的方法,我可以添加在發佈的代碼,以不斷閱讀文件? – Adi

相關問題