Подтвердить что ты не робот

Прочитать последнюю строку текстового файла

Мне нужно знать, как читать последнюю строку текстового файла. Мне нужно найти строку, а затем обработать ее в базе данных SQL... Я читал и просматривал Интернет, но я борется, чтобы найти правильный способ сделать это. То есть:.

  • Найти последнюю строку файла.
  • Обработать последнюю строку файла.

Надеюсь, это имеет смысл.

4b9b3361

Ответ 1

Есть два способа: простой и неэффективный, или ужасно сложный, но эффективный. Сложная версия предполагает разумную кодировку.

Если ваш файл настолько велик, что вы действительно не можете его прочитать, я бы просто использовал:

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

Обратите внимание, что это использует File.ReadLines, а не File.ReadAllLines. Если вы используете .NET 3.5 или ранее, вам нужно будет использовать File.ReadAllLines или написать собственный код. ReadAllLines будет считывать весь файл в память за один раз, тогда как ReadLines передает его.

В противном случае сложный способ - использовать код, похожий на этот. Он пытается читать назад с конца файла, обрабатывая гадость, такую ​​как многобайтовые символы UTF-8. Это не приятно.

Ответ 2

Первая часть:

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

или

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

ReadLines предпочтительнее.

Ответ 3

Я бы просто объединил File.ReadLines(path) и Enumerable.Last:

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

Он передает строки и не загружает их в память как File.ReadAllLines.

Ответ 4

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

Ответ 5

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