使用StreamReader读取文件的最后一行后执行操作
本文关键字:一行 操作 执行 读取 StreamReader 文件 最后 使用 | 更新日期: 2023-09-27 18:19:48
我正在使用StreamReader
从文本文件中读取行。对于每一行,我都要执行特定的操作。
示例:
System.IO.StreamReader file = new System.IO.StreamReader(fileDirectory); //Open StreamReader
while ((inFileString = file.ReadLine()) != null)
{
if(something)
{ do stuff... }
}
我的问题发生在读取最后一行之后,因为while
循环中的代码变得不可访问。这基本上就像我需要被允许在while
循环自动退出后再经历一次。如何对从文件中读取的最后一行执行操作?
(我可以在循环之外复制操作,但我认为这效率很低…)
我认为这样的东西看起来是可以接受的。
using (StreamReader file = new StreamReader(@"D:'Downloads'testfile.txt"))
{
string str = "";
while ((str = file.ReadLine()) != null || str == null)
{
if (str == null)
{
Console.WriteLine("Hey! We've already passed the EOF!");
break;
}
Console.WriteLine(str);
}
}
也许注意到最好的解决方案,但。。。
int TotalLines(string filePath)
{
using (StreamReader r = new StreamReader(filePath))
{
int i = 0;
while (r.ReadLine() != null)
{
i++;
}
return i;
}
}
//Open StreamReader
System.IO.StreamReader file = new System.IO.StreamReader(fileDirectory);
for (int q = 0; q <= TotalLines + 1; i++)
{
file.ReadLine();
if (q == int + 1)
{
//do stuff...
}
}
这不是最干净的代码,但我从来都不是完美的。
您尝试过使用Peek()
方法吗?
using (var strReader = new System.IO.StreamReader())
{
while (strReader.Peek() > -1)
{
var line = strReader.ReadLine();
// Do Something
}
strReader.Close();
}