簡體   English   中英

C#從文件到列表框逐行讀取

[英]C# Reading line by line from file to listbox

我有一個問題,就是逐行從文件中讀取文本。

System.IO.StreamReader file = new System.IO.StreamReader("ais.txt");
while ((line = file.ReadLine()) != null)
{
    listBox1.Items.Add(line);
}

此代碼僅從文件讀取最后一行並顯示在列表框中。 我怎樣逐行閱讀?

例如:讀一行,等待1秒,讀另一行,等待1秒......等等。

如果您希望一次讀取一行並延遲一秒,則可以向表單添加一個計時器來執行此操作(將其設置為1000):

System.IO.StreamReader file = new System.IO.StreamReader("ais.txt");
String line;
private void timer1_Tick(object sender, EventArgs e)
{
    if ((line = file.ReadLine()) != null)
    {
        listBox1.Items.Add(line);
    }
    else
    {
        timer1.Enabled = false;
        file.Close();
    }
}

你也可以一次讀取所有行,只需一次顯示一行,但我試圖盡可能地保持這一點。

await使這很容易。 我們可以循環遍歷所有行並await Task.Delay異步等待一段時間再繼續,同時仍然不阻塞UI線程。

public async Task DisplayLinesSlowly()
{
    foreach (var line in File.ReadLines("ais.txt"))
    {
        listBox1.Items.Add(line);
        await Task.Delay(1000);
    }
}

你試過File.ReadAllLines嗎? 你可以這樣做:

string[] lines = File.ReadAllLines(path);

foreach(string line in lines)
{
   listBox1.Items.Add(line);
}

您可以讀取所有行並保存到數組字符串

  string[] file_lines = File.ReadAllLines("ais.txt");

然后通過按鈕單擊逐行讀取或使用計時器等待1秒

暫無
暫無

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

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