Sie können keine Zeilennummer an ReadLine
übergeben und erwarten, dass sie diese bestimmte Zeile findet. Wenn Sie sich die ReadLine
documentation ansehen, werden Sie sehen, dass sie keine Parameter akzeptiert.
public override string ReadLine()
Wenn mit Dateien arbeiten, müssen Sie sie behandeln, als von Datenströmen. Jedes Mal, wenn Sie die Datei öffnen, beginnen Sie beim ersten Byte/Zeichen der Datei.
var reader = new StreamReader("c:\\test.txt"); // Starts at byte/character 0
Sie müssen den Stream geöffnet lassen, wenn Sie mehr Zeilen lesen möchten.
using (var reader = new StreamReader("c:\\test.txt"))
{
string line1 = reader.ReadLine();
string line2 = reader.ReadLine();
string line3 = reader.ReadLine();
// etc..
}
Wenn Sie wirklich eine Methode NextLine
schreiben wollen, dann müssen Sie die erstellte StreamReader
irgendwo und dass jedes Mal verwenden Objekt speichern.Etwas wie folgt aus:
public class MyClass : IDisposable
{
StreamReader reader;
public MyClass(string path)
{
this.reader = new StreamReader(path);
}
public string NextLine()
{
return this.reader.ReadLine();
}
public void Dispose()
{
reader.Dispose();
}
}
Aber ich schlage vor, Sie entweder Schleife durch den Strom:
using (var reader = new StreamReader("c:\\test.txt"))
{
while (some_condition)
{
string line = reader.ReadLine();
// Do something
}
}
Oder die Linien auf einmal ReadAllLines
method mit der File
Klasse erhalten:
string[] lines = System.IO.File.ReadAllLines("c:\\test.txt");
for (int i = 0; i < lines.Length; i++)
{
string line = lines[i];
// Do something
}