如何使用StreamReader在特定行之后读取文本文件行

内存

我有一个文本文件,我正在使用StreamReader进行读取。现在根据我的要求,无论我先读了哪几行,我都不想再读一次,这意味着我不想再次获取该数据。所以我添加了File.ReadLines(FileToCopy).Count();代码以获取数量首先读取行。现在无论上面的代码行返回什么行,我都想在那之后阅读。这是我的代码。

        string FileToCopy = "E:\\vikas\\call.txt";

        if (System.IO.File.Exists(FileToCopy) == true)
        {

            lineCount = File.ReadLines(FileToCopy).Count();

            using (StreamReader reader = new StreamReader(FileToCopy))
            {

            }
         }

我需要在这里指定什么条件。请帮助我。

       while ((line = reader.ReadLine()) != null)
        {

            var nextLines = File.ReadLines(FileToCopy).Skip(lineCount);

        if (line != "")
        {
        }
吉姆·米歇尔(Jim Mischel)

有一种更快的方法可以执行此操作,该方法不需要您读取整个文件即可到达停止位置。关键是要跟踪文件的长度。然后,您将文件打开为FileStream,将其定位到先前的长度(即您之前阅读的位置的末尾),然后创建一个StreamReader所以看起来像这样:

long previousLength = 0;

然后,当您要复制新内容时:

using (var fs = File.OpenRead(FileToCopy))
{
    // position to just beyond where you read before
    fs.Position = previousLength;

    // and update the length for next time
    previousLength = fs.Length;

    // now open a StreamReader and read
    using (var sr = new StreamReader(fs))
    {
        while (!sr.EndOfStream)
        {
            var line = sr.ReadLine();
            // do something with the line
        }
    }
}

这将节省您巨大的,如果文件变大量的时间。例如,如果上次读取文件的大小为千兆字节,那么File.ReadLines(filename).Skip(count)将需要20秒才能到达结尾,因此您可以读取下一行。我上面描述的方法将花费更少的时间-可能不到一秒钟。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在C#中的指定行之后读取文本文件

Python无法在read()之后读取文本文件中的行

从特定行读取文本文件

如何从PHP中的文本文件读取特定行

如何只读取文本文件中的特定行?

使用padas读取文本文件以获取特定行

如何使用RUBY读取文本文件中的行

如何使用Python读取文本文件中的特定行?

查找特定字符串的行并读取该行之后的文本文件

在同时对文本文件进行某些操作之后,如何删除该文本文件中的特定行

在使用Powershell在文本文件中找到特定行之后,如何停止Get-Content -wait?按需退出管道

从Java中的文本文件读取特定行

从Java中的文本文件读取特定行

从文本文件读取特定行的方法是什么?

C编程读取文本文件的特定行

C编程-从文本文件读取特定行

从文本文件中的特定行读取数字

在vbscript中读取文本文件的特定行

读取文本文件的特定行 [C#]

python pandas读取文本文件,跳过特定行

如何从文本文件中读取特定行和文本

要在Intent之后读取的Android打开文本文件。ACTION_GET_CONTENT

如何從文本文件打印特定的行/行?

如何从文本文件中读取 5 行

我如何从python中的特定行读取文本文件?

我如何从 Java 8 中的文本文件中读取特定行?

如何只读取特定字符串后的文本文件中的行?

如何使用Java读取文本文件的特定部分

使用熊猫读取以行作为列名的文本文件