簡體   English   中英

如何在C#中使用FileShare.ReadWrite模式連續讀取文本文件

[英]How to Read a text file continuosly using FileShare.ReadWrite mode in C#

我有一個文本文件正在不斷地從服務器數據中更新。現在根據我的要求,一旦在文本文件中寫入新行,我就必須閱讀此行並對其進行處理,並對所有新行重復此操作為此,我必須連續讀取文本文件。同樣,我也嘗試使用FileSystemWatcher,但后來知道它也將非常昂貴且效率低下。 現在,我嘗試使用FileShare.ReadWrite連續讀取。這是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)
            {
            }
        }
    }
}

所以我想問問,這是連續讀取文件的正確方法還是一旦文件完成將停止? 它將持續監視文件中是否有新行嗎?

閱讀器將停止在年底和關閉文件(如果你一直using的代碼)。

您可以檢查文件大小和位置讀取器(配置為不將BOM用於Unicode編碼)通過Reader.BaseStream (有關重置內部緩沖區的注意事項)以最后讀取位置。

請注意,這兩個過程都需要在選擇開放模式下進行協作,就好像作者不允許共享一樣,您必須改為閱讀,重新打開並尋找。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM