C#跳过文本文件的第一行

6 c#

这是我正在使用的代码

        using (FileStream fs = new FileStream(filename, FileMode.Open))
        using (StreamReader rdr = new StreamReader(fs))
        {
            while (!rdr.EndOfStream)
            {
                for (int z = 0; z < 2; z++)
                {

                    string[] lines = rdr.ReadLine().Split('|');
                    {
                        sb.AppendLine(";Re");
                        sb.AppendLine("@C PAMT " + lines[3]);
                        sb.AppendLine("@T " + lines[0]);
                        sb.AppendLine("@D @I\\" + lines[1]).Replace("I:\\", "");
                        sb.AppendLine(lines[2].Replace(";", "\r\n");
                    }
                }
            }
        }

        using (FileStream fs = new FileStream(outputfilename, FileMode.Create))
        using (StreamWriter writer = new StreamWriter(fs))
        {
            writer.Write(sb.ToString());
        }
Run Code Online (Sandbox Code Playgroud)

我想要的是跳过StreamReader的第一行或跳过整个第一个stringbuilder.我以为for会这样做,但它没有.

注意:我想推荐一个foreach.

Jar*_*Par 20

为什么不在创建rdr变量后立即添加以下行?

if ( !rdr.EndOfStream ) {rdr.ReadLine();}
Run Code Online (Sandbox Code Playgroud)


rba*_*all 7

为什么不读第一行而不做任何事情呢?

using (StreamReader rdr = new StreamReader(fs))
{
  rdr.ReadLine();
  ...
Run Code Online (Sandbox Code Playgroud)

或者如果你不想这样做,有一个外部变量i并测试i!= 0

  • 如果我遗漏了什么,请纠正我,但这正是 JaredPar 所说的,只是它不会处理空文件的情况。 (2认同)