阅读文本文件的最后一行

我需要知道如何阅读文本文件的最后一行。 我需要find该行,然后将其处理成一个SQL数据库…我一直在阅读,并在网上冲浪,但正在争取find正确的方法来做到这一点。 即:

  1. find文件的最后一行。
  2. 处理文件的最后一行。

我希望这是有道理的。

有两种方式:简单和低效,或者可怕的复杂而高效。 复杂的版本假设一个合理的编码。

除非你的文件太大,你真的无法阅读,我只是使用:

var lastLine = File.ReadLines("file.txt").Last(); 

请注意,这使用File.ReadLines而不是 File.ReadAllLines 。 如果您使用的是.NET 3.5或更早版本,则需要使用File.ReadAllLines或编写自己的代码 – ReadAllLines将一次性读取整个文件到内存中,而ReadLines则将其传输到内存中。

否则,复杂的方法是使用类似于此的代码。 它试图从文件末尾读取,处理诸如UTF-8多字节字符之类的问题。 这不愉快。

第一部分:

 File.ReadAllLines(@"c:\some\path\file.txt").Last(); 

要么

 File.ReadLines(@"c:\some\path\file.txt").Last(); 

ReadLines是首选。

 string m = ""; StreamReader r = new StreamReader("file_path"); while (r.EndOfStream == false) { m = r.ReadLine(); } Console.WriteLine("{0}\n", m); r.Close(); 

我只是将File.ReadLines(path)Enumerable.Last结合起来:

 String last = File.ReadLines(@"C:\file.txt").Last(); 

它stream线,并不作为File.ReadAllLines全部加载到内存中。

 string last = File.ReadLines(@"C:\file.txt").Last(); string lastsymbol = last[last.Count - 1];