阅读时忽略前8行文本文件? C#

时间:2013-09-27 21:30:15

标签: c# streamreader

我想忽略蓝框中的部分并开始从箭头

读取我的txt文件

enter image description here

我打算只循环前8行并将它们存储在垃圾变量中。如果我这样做,我的crusor现在是在第9行,所以我可以从那里开始阅读?我的代码肯定是错的,它甚至没有读取前8行。

private void button1_Click(object sender, EventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            StreamReader sr = new StreamReader(File.OpenRead(ofd.FileName));


            for (int i = 0; i < 8; i++)
            {
                string junk = sr.ReadLine();
            }

            sr.Dispose();

        }
    }

2 个答案:

答案 0 :(得分:9)

您可以使用:

var lines = File.ReadLines(ofd.FileName);

foreach (string line in lines.Skip(8))
    Trace.WriteLine(line);

由于File.ReadLines返回IEnumerable<string>,因此只会在迭代时加载这些行。

更多信息: File.ReadLines方法 http://msdn.microsoft.com/en-us/library/dd383503.aspx

答案 1 :(得分:0)

这是一种愚蠢的行为,但它有效。 你必须消费这条线。

        StreamReader sr = new StreamReader(@"TextFile1.txt");

        int i = 1;

        while (!sr.EndOfStream)
        {
            if(i > 8)
                Console.WriteLine(sr.ReadLine ());
            sr.ReadLine ();
            i++;
        }