如何在多行上打印文本文件中的文本

时间:2013-06-15 06:22:56

标签: c#

我有一个列表框,可以显示txt文件中的一些信息。但是,我似乎无法在不同的行上打印出信息。这是片段。当用户按下按钮时,应显示文本。

        using (StreamReader sr = new StreamReader("Books.txt"))
        {
            String line = sr.ReadToEnd();
            listBox1.Items.Add(line + "\n");
        }

文件中有10行。

3 个答案:

答案 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");
    }
}

请参阅the documentation for StreamReader

答案 2 :(得分:0)

通过使用StreamReader.ReadToEnd(),您将文件的全部内容放在一个字符串中。

要为文件中的每一行添加一个项目ListBox,这应该有效:

using (StreamReader sr = new StreamReader("Books.txt"))
{
    while (!sr.EndOfStream)
    {
        string line = sr.ReadLine();
        listBox1.Items.Add(line);
    }
}