CodeGo.net>使用数组列表或数组的StreamReader

这是我的代码:

StreamReader reader = new StreamReader("war.txt");
string input = null;

while ((input = reader.ReadLine()) != null)
{
    Console.WriteLine(input);
}

reader.Close();

上面的程序逐行读取并从文件“ war.txt”中打印出来.我需要重新编写程序,以便以相反的顺序打印出来,即最后一行第一和最后一行.例如,如果“ war.txt”包含以下内容:

Hello.

How are you?

Thank you.

Goodbye.

该程序应打印出:

Goodbye.

Thank you.

How are you?

Hello.

我是C#的新手,请帮忙!谢谢!

解决方法:

为此,您无论如何都要缓冲数据(除非您使用FileStream API进行一些棘手的工作以向后读取文件).怎么样:

var lines = File.ReadAllLines("war.txt");
for(int i = lines.Length - 1; i >= 0; i--)
    Console.WriteLine(lines[i]);

它只是将文件(按行)加载到一个数组中,然后从末尾开始打印该数组.

LINQ版本是:

foreach(var line in File.ReadLines("war.txt").Reverse())
    Console.WriteLine(line);

但坦率地说,阵列版本效率更高.

上一篇:pom文件指定编码格式


下一篇:pom打包