我有一个列表框,可以显示txt文件中的一些信息。但是,我似乎无法在不同的行上打印出信息。这是片段。当用户按下按钮时,应显示文本。
using (StreamReader sr = new StreamReader("Books.txt"))
{
String line = sr.ReadToEnd();
listBox1.Items.Add(line + "\n");
}
文件中有10行。
答案 0 :(得分:1)
您可以使用http://msdn.microsoft.com/en-us/library/system.io.file.readalllines.aspx中记录的File.ReadAllLines
。
使用示例在http://msdn.microsoft.com/en-us/library/s2tte0y1.aspx
处提供在你的例子中:
var lines = File.ReadAllLines("Book.txt");
foreach (var element in lines)
{
listBox1.Items.Add(element);
}
你也可以做一个班轮。
listBox1.Items.AddRange(File.ReadAllLines("Book.txt")); // tinstaafl's comment
答案 1 :(得分:0)
ReadToEnd()
将文件中的所有内容读入一个变量。
你想要的是ReadLine()
。
这是应该工作的一种方式(虽然它可能做得更好)。
using (StreamReader sr = new StreamReader("Books.txt"))
{
while(true)
{
String line = sr.ReadLine();
if(line==null)
break;
listBox1.Items.Add(line + "\n");
}
}
答案 2 :(得分:0)
通过使用StreamReader.ReadToEnd()
,您将文件的全部内容放在一个字符串中。
要为文件中的每一行添加一个项目ListBox
,这应该有效:
using (StreamReader sr = new StreamReader("Books.txt"))
{
while (!sr.EndOfStream)
{
string line = sr.ReadLine();
listBox1.Items.Add(line);
}
}