Прочитать последнюю строку текстового файла
Мне нужно знать, как читать последнюю строку текстового файла. Мне нужно найти строку, а затем обработать ее в базе данных SQL... Я читал и просматривал Интернет, но я борется, чтобы найти правильный способ сделать это. То есть:.
- Найти последнюю строку файла.
- Обработать последнюю строку файла.
Надеюсь, это имеет смысл.
Ответы
Ответ 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];