Dateien Mit StreamReader Lesen
Sie können Dateien mit der Programmiersprache C# öffnen und lesen.
Zum Lesen einer Datei erstellen wir ein neues StreamReader
-Objekt. Das Objekt StreamReader
erhält den Pfad der Datei als Eingabe.
Der Begriff "Objekt" wird in späteren Abschnitten noch genauer erklärt. Zum Verständnis: Ein Objekt ist einfach eine Instanz eines Datentyps, und StreamReader
ist ein Datentyp wie int
oder float
. Die Werte 1
, 2.5f
und "Hello World"
können technisch als "Objekte" der Datentypen int, float bzw. string bezeichnet werden.
index.cs
1StreamReader fileVarName = new StreamReader(fullPath);
Hier steht fileVarName
für den Variablennamen, in dem das StreamReader-Objekt gespeichert wird, und fullPath
soll den vollständigen Pfad der Datei als Zeichenkette enthalten.
Zum Beispiel kann eine Datei "text.txt" auf dem Desktop geöffnet werden, die den Pfad C:/Users/Admin/Desktop/text.txt
hat:
index.cs
1StreamReader textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt");
Es kann auch eine implizite Deklaration verwendet werden, um die Syntax etwas zu verkürzen: var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt");
Angenommen, die Datei text.txt
enthält folgenden Inhalt:
text.txt
12345This is some example text
Ein StreamReader
-Objekt verfügt über eine ReadLine
-Methode, die eine Zeile aus der Datei liest und zurückgibt:
index.cs
1234var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line = textFile.ReadLine(); Console.WriteLine(line);
Ausgabe:
This
Die Methode ReadLine
springt automatisch zum Anfang der nächsten Zeile. Wird sie erneut aufgerufen, liest sie die nächste Zeile, sofern vorhanden. Andernfalls gibt sie einfach null
(nichts) zurück:
index.cs
12345678var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); Console.WriteLine(textFile.ReadLine()); // This Console.WriteLine(textFile.ReadLine()); // is Console.WriteLine(textFile.ReadLine()); // some Console.WriteLine(textFile.ReadLine()); // example Console.WriteLine(textFile.ReadLine()); // text Console.WriteLine(textFile.ReadLine()); // NULL
Ausgabe:
This
is
some
example
text
Um alle Zeilen aus einer Datei zu lesen, kann eine while
-Schleife verwendet werden, deren Bedingung prüft, ob die nächste Zeile null
ist oder nicht. Nachfolgend eine einfache Möglichkeit, dies umzusetzen:
index.cs
12345678var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line = textFile.ReadLine(); while(line != null) { Console.WriteLine(line); line = textFile.ReadLine(); }
Ausgabe:
This
is
some
example
text
Der obige Code kann durch einen Trick etwas übersichtlicher gestaltet werden. Dafür betrachten wir die Zuweisungsanweisungen. Eine Zuweisungsanweisung besitzt ebenfalls einen Rückgabewert, nämlich den Wert, der zugewiesen wird. Dies lässt sich anhand eines Beispiels verdeutlichen:
index.cs
12int a; Console.WriteLine(a = 7);
Ausgabe:
7
Es wird 7
ausgegeben, da der Ausdruck a = 7
den Wert 7
zurückgibt, welcher a
zugewiesen wird.
Diese Information kann genutzt werden, um beispielsweise mehreren Variablen in einer einzigen Anweisung denselben Wert zuzuweisen:
index.cs
123456789int a = 1; int b = 1; int c = 1; a = b = c = 9; Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c);
Ausgabe:
9
9
9
Mit diesen Informationen kann der Code zum Lesen von Dateien gekürzt werden, indem überflüssiger Code entfernt wird:
index.cs
1234567var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line; while((line = textFile.ReadLine()) != null) { Console.WriteLine(line); }
Innerhalb der Bedingung wurde zunächst eine Zuweisungsanweisung line = textFile.ReadLine()
verwendet, die die Variable line
automatisch aktualisiert und anschließend anhand des Rückgabewerts prüft, ob sie null ist.
Nach dem Lesen der Datei muss diese mit der Methode Close
geschlossen werden, da es sonst zu Speicherlecks kommen kann oder die Datei gesperrt bleibt und von anderen Stellen aus nicht mehr zugänglich ist, solange das Programm läuft.
Der endgültige Code sieht folgendermaßen aus:
index.cs
123456789var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line; while ((line = textFile.ReadLine()) != null) { Console.WriteLine(line); } textFile.Close();
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 2.04
Dateien Mit StreamReader Lesen
Swipe um das Menü anzuzeigen
Sie können Dateien mit der Programmiersprache C# öffnen und lesen.
Zum Lesen einer Datei erstellen wir ein neues StreamReader
-Objekt. Das Objekt StreamReader
erhält den Pfad der Datei als Eingabe.
Der Begriff "Objekt" wird in späteren Abschnitten noch genauer erklärt. Zum Verständnis: Ein Objekt ist einfach eine Instanz eines Datentyps, und StreamReader
ist ein Datentyp wie int
oder float
. Die Werte 1
, 2.5f
und "Hello World"
können technisch als "Objekte" der Datentypen int, float bzw. string bezeichnet werden.
index.cs
1StreamReader fileVarName = new StreamReader(fullPath);
Hier steht fileVarName
für den Variablennamen, in dem das StreamReader-Objekt gespeichert wird, und fullPath
soll den vollständigen Pfad der Datei als Zeichenkette enthalten.
Zum Beispiel kann eine Datei "text.txt" auf dem Desktop geöffnet werden, die den Pfad C:/Users/Admin/Desktop/text.txt
hat:
index.cs
1StreamReader textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt");
Es kann auch eine implizite Deklaration verwendet werden, um die Syntax etwas zu verkürzen: var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt");
Angenommen, die Datei text.txt
enthält folgenden Inhalt:
text.txt
12345This is some example text
Ein StreamReader
-Objekt verfügt über eine ReadLine
-Methode, die eine Zeile aus der Datei liest und zurückgibt:
index.cs
1234var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line = textFile.ReadLine(); Console.WriteLine(line);
Ausgabe:
This
Die Methode ReadLine
springt automatisch zum Anfang der nächsten Zeile. Wird sie erneut aufgerufen, liest sie die nächste Zeile, sofern vorhanden. Andernfalls gibt sie einfach null
(nichts) zurück:
index.cs
12345678var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); Console.WriteLine(textFile.ReadLine()); // This Console.WriteLine(textFile.ReadLine()); // is Console.WriteLine(textFile.ReadLine()); // some Console.WriteLine(textFile.ReadLine()); // example Console.WriteLine(textFile.ReadLine()); // text Console.WriteLine(textFile.ReadLine()); // NULL
Ausgabe:
This
is
some
example
text
Um alle Zeilen aus einer Datei zu lesen, kann eine while
-Schleife verwendet werden, deren Bedingung prüft, ob die nächste Zeile null
ist oder nicht. Nachfolgend eine einfache Möglichkeit, dies umzusetzen:
index.cs
12345678var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line = textFile.ReadLine(); while(line != null) { Console.WriteLine(line); line = textFile.ReadLine(); }
Ausgabe:
This
is
some
example
text
Der obige Code kann durch einen Trick etwas übersichtlicher gestaltet werden. Dafür betrachten wir die Zuweisungsanweisungen. Eine Zuweisungsanweisung besitzt ebenfalls einen Rückgabewert, nämlich den Wert, der zugewiesen wird. Dies lässt sich anhand eines Beispiels verdeutlichen:
index.cs
12int a; Console.WriteLine(a = 7);
Ausgabe:
7
Es wird 7
ausgegeben, da der Ausdruck a = 7
den Wert 7
zurückgibt, welcher a
zugewiesen wird.
Diese Information kann genutzt werden, um beispielsweise mehreren Variablen in einer einzigen Anweisung denselben Wert zuzuweisen:
index.cs
123456789int a = 1; int b = 1; int c = 1; a = b = c = 9; Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c);
Ausgabe:
9
9
9
Mit diesen Informationen kann der Code zum Lesen von Dateien gekürzt werden, indem überflüssiger Code entfernt wird:
index.cs
1234567var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line; while((line = textFile.ReadLine()) != null) { Console.WriteLine(line); }
Innerhalb der Bedingung wurde zunächst eine Zuweisungsanweisung line = textFile.ReadLine()
verwendet, die die Variable line
automatisch aktualisiert und anschließend anhand des Rückgabewerts prüft, ob sie null ist.
Nach dem Lesen der Datei muss diese mit der Methode Close
geschlossen werden, da es sonst zu Speicherlecks kommen kann oder die Datei gesperrt bleibt und von anderen Stellen aus nicht mehr zugänglich ist, solange das Programm läuft.
Der endgültige Code sieht folgendermaßen aus:
index.cs
123456789var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line; while ((line = textFile.ReadLine()) != null) { Console.WriteLine(line); } textFile.Close();
Danke für Ihr Feedback!