阅读最后几行文本文件? C#

时间:2013-11-02 16:13:17

标签: c#

首先,我不是使用c#的最有经验的人,我到目前为止唯一做的就是阅读整个文本文件。

我想阅读文本文件的最后几行,我最终需要为几个文本文件执行此操作,并且每个文本文件的格式都相同,大致相同我想要遗漏的80多条信息,然后是“#Footer'如果可能的话,我希望阅读该特定单词之后的所有内容(大约我会在单词'#Footer'之后保留大约6/7行)文件)。

关于我如何做到这一点的任何想法?感谢

3 个答案:

答案 0 :(得分:6)

您可以使用不需要将整个文件加载到内存的File.ReadLines

var lines = File.ReadLines(fname)
            .SkipWhile(line => !line.StartsWith("#Footer"))
            .Skip(1)
            .ToList();

修改

Console.WriteLine(String.Join(Environment.NewLine, lines));

答案 1 :(得分:0)

 private  String GetFooter(String filePath)
        {

            String inputText = "#Footer";
            String footerText ="";
            String [] allFileLines=(String[])File.ReadLines(filePath).ToArray();
            int footerLineNo = -1;
            for (int i = 0; i < allFileLines.Length; i++)
            {
                if (allFileLines[i].Contains(inputText))
                    footerLineNo = i;
            }

            if (footerLineNo > -1)
            {
                for (int i = footerLineNo + 1; i < allFileLines.Length; i++)
                    footerText += allFileLines[i]+"\n";
            }
            return footerText;
        }

答案 2 :(得分:0)

试试这个

        bool check= false;
        string myline;
        string mytext = "";
        StreamReader reader = new StreamReader("temp.txt");
        while ((myline= reader.ReadLine()) != null)
        {
            if (myline.Contains("#Footer") || check)
            {
                check= true;
                mytext += line;
            }
        }