簡體   English   中英

如何在 C# 中使用 StreamReader 加載大文件?

[英]How to load large file with StreamReader in C#?

我在 C# 中使用 StreamReader 將 txt 文件加載到列表中,它適用於小文件 <= 20 Mb 但是當我需要加載大文件時,prepossess 停止並向我展示這個

您的應用已進入中斷 state,但當前沒有執行所選調試引擎支持的代碼(例如,僅執行本機運行時代碼)。

我正在使用 Visual Studio 2017。

這是代碼

line = reader.ReadLine();

while (line != null)
{
    if (line.Contains("@"))
    {
        myEmails.Add(line);
        line = reader.ReadLine();
    }
}
reader.Close();

您的代碼只是有一個小的邏輯錯誤。

在您的循環中,您正在尋找包含@符號的行。 如果該行有一個,它將它添加到myEmails並獲取下一行。

但是,如果該行不包含@則永遠不會讀取下一行,因此您將進入無限循環。

你只需要移動line = reader.ReadLine(); if語句之外,它總是會讀取下一行,無論它是否包含@符號:

line = reader.ReadLine();
while (line != null)
{
    if (line.Contains("@"))
        myEmails.Add(line);

    line = reader.ReadLine();
}
reader.Close();

暫無
暫無

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

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