[英]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.