Sie müssen nur die letzte Zeile aus der großen Protokolldatei abrufen. Was ist der beste Weg, das zu tun?So lesen Sie effizient nur die letzte Zeile der Textdatei
Antwort
Sie wollen die Datei rückwärts ReverseLineReader
mit lesen:
How to read a text file reversely with iterator in C#
Dann .Take(1)
darauf laufen.
var lines = new ReverseLineReader(filename);
var last = lines.Take(1);
Sie wollen MiscUtilJon Skeet's Bibliothek verwenden, direkt anstatt Kopieren/den Code einfügen.
Oder Sie können es zwei Linie (.Net 4 nur)
var lines = File.ReadLines(path);
string line = lines.Last();
Dies liest den gesamten Inhalt der Datei in den Speicher – RJFalconer
Während dies den Job erledigen kann, ist es unglaublich Speicher ineffizient (wie RJFalconer Notizen) und hat auch viel Latenz - denken Sie daran, dass das Lesen einer Datei eines der langsamsten Dinge ist, die Sie in einem Programm tun können. Wenn Sie nur selten lesen, könnte dies funktionieren, aber das ist _far _ von einer starken, professionellen Lösung. –
String lastline="";
String filedata;
// Open file to read
var fullfiledata = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader sr = new StreamReader(fullfiledata);
//long offset = sr.BaseStream.Length - ((sr.BaseStream.Length * lengthWeNeed)/100);
// Assuming a line doesnt have more than 500 characters, else use above formula
long offset = sr.BaseStream.Length - 500;
//directly move the last 500th position
sr.BaseStream.Seek(offset, SeekOrigin.Begin);
//From there read lines, not whole file
while (!sr.EndOfStream)
{
filedata = sr.ReadLine();
// Interate to see last line
if (sr.Peek() == -1)
{
lastline = filedata;
}
}
return lastline;
}
- 1. Die letzte Zeile der Textdatei lesen
- 2. Schnell die letzte Zeile einer Textdatei lesen?
- 3. C++ schnellste Möglichkeit, nur die letzte Zeile der Textdatei zu lesen?
- 4. So lesen Sie die letzte Zeile mit SQL Server
- 5. Lesen Sie Textdatei, bestimmte Zeile.
- 6. Nur die letzte Zeile anzeigen
- 7. SSIS: Skriptkomponente So überprüfen Sie die letzte Zeile im Eingabepuffer
- 8. Letzte Zeile in Textdatei löschen
- 9. So löschen Sie die erste und letzte Zeile aus einer Textdatei C#?
- 10. Coldfusion lesen bestimmte Zeile aus der Textdatei
- 11. Aus Textdatei lesen - Trennende Elemente der Zeile
- 12. Textdatei: Zeile für Zeile lesen C#
- 13. Ersetzen Sie nur eine Zeile in Textdatei
- 14. Nur letzte Zeile der SQLite-Datenbank wird
- 15. MySQL JOIN nur die letzte Zeile?
- 16. So lesen Sie eine Remote-Textdatei
- 17. pyserial - So lesen Sie die letzte von einem seriellen Gerät gesendete Zeile
- 18. Nur die letzte Zeile einer Datei drucken?
- 19. Lesen Sie die letzte Zeile der Datei mit Daten in Perl
- 20. Wie lösche ich die letzte Zeile in einer Textdatei?
- 21. Das letzte Wort nicht in Zeile lesen
- 22. Die letzte neue Zeile beim Lesen einer Datei beibehalten
- 23. So lesen Sie Teildaten aus einer großen Textdatei in C++
- 24. C-Programmierung - Lesen spezielle Zeile von Textdatei
- 25. Nur die erste Zeile einer Datei lesen?
- 26. Wie erreicht man effizient das Ende einer Textdatei in Java?
- 27. So lesen Sie nur Wörter, nicht volle Sätze
- 28. Lesen von beiden Zeichen und Zeile aus der Textdatei
- 29. Wählen Sie die letzte Zeile in MySQL
- 30. eine Textdatei in R Zeile für Zeile lesen
Nizza tun! Danke, werde es versuchen. – 0x49D1
Seltsam, dass die Bibliothek nicht in Nuget ist .. Danke! – 0x49D1
Siehe meine Antwort in der möglichen Duplikat http://StackOverflow.com/a/33907602/4821032 –