从外部文本文件中读取指定的行

本文关键字:取指 读取 文本 文件 从外部 | 更新日期: 2023-09-27 18:25:44

我正在使用C#并为Windows 7或Windows 8编写Windows窗体应用程序。

我需要知道如何让我的应用程序读取应该分配给特定文本框或组合框的特定行。

这是我目前掌握的代码。

        using (StreamReader QNARead = new StreamReader(TestPath))
            if (QNARead.Peek() >= 0)
            {
                string Line1 = QNARead.ReadLine();
                QuestionText1.Text = Line1;
                string Line2 = QNARead.ReadLine();
                QuestionText2.Text = Line2;
                string Line3 = QNARead.ReadLine();
                AlternativesList1.Items.Add(Line3);
            }

但使用这种方法,我将不得不读取很多行,因为这一行可能是文本文件中的第500行。(我确实知道确切的行号,例如54)。

从外部文本文件中读取指定的行

我用过一次这个来读取文本文件中的特定行:

string filename = "test.txt";
if (File.Exists(filename))
{
    string[] lines = File.ReadAllLines(filename);
    Console.WriteLine(lines[5]);
}

其中5可以用任何行号(基于零)代替。

由于文件只是一个字节列表,因此您需要知道要读取的行数,才能获得所需的行数。

除非这些行是固定的(或可预测的)长度,或者你有某种单独的索引,否则你需要把每一行都读到你想要的。从代码的角度来看,您可以使其相当整洁,例如在Framework 4.0中:

string line54 = File.ReadLines(FileName).Skip(53).Take(1).First();

请注意,在这一点上,您没有利用读取跳过的前几行的优势,因此更有效的方法是保持循环读取,直到到达所需的最后一行。