0

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

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

文件中有 10 行。

4

3 回答 3

1

您可以使用http://msdn.microsoft.com/en-us/library/system.io.file.readalllines.aspxFile.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
于 2013-06-15T06:27:08.203 回答
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");
    }
}

请参阅StreamReader 的文档

于 2013-06-15T06:28:05.163 回答
0

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

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

using (StreamReader sr = new StreamReader("Books.txt"))
{
    while (!sr.EndOfStream)
    {
        string line = sr.ReadLine();
        listBox1.Items.Add(line);
    }
}    
于 2013-06-15T06:30:23.287 回答