Versuche via Streamreader mehrere Dateien gleichzeitig einzulesen aber er liest nur die erste Datei ein.
Kann ich für die zweite nicht die gleiche Instanz nutzen? Muss ich eine neue erstellen?
Besten Dank
string datei = @"C:\Users\User\Desktop\Programme\anfang.txt";
StreamReader streamreader = new StreamReader(datei);
while (!streamreader.EndOfStream)
{
Console.WriteLine(streamreader.ReadLine());
}
datei = @"C:\Users\User\Desktop\Programme\ende.txt";
while (!streamreader.EndOfStream)
{
Console.WriteLine(streamreader.ReadLine());
}
streamreader.Close();
Console.ReadKey();
Kurz und knapp: Nein, geht nicht
Ich würde mir da auch keinen Kopf drum machen, der Performance-Vorteil (wenn Du das erreichen willst), dürfte derart winzig sein, dass es den Aufwand, mehrere Streams zu managen, völlig irrational hoch erscheinen lässt.
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.
Danke für die Antwort.
Gibt es noch einen eleganteren Weg zwei txt Dateien einzulesen als zwei Instanzen von Streamreader zu nutzen?
Kommt drauf an, was Du machen willst.
Aber schau dir Mal die File-Klasse an, die hat einige nützliche statische Methoden.
Die macht das am Ende aber genauso, nur eben schon fertig Implementiert.
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.
Wie Palladin007 schreibt ist hier eher die File Klasse mehr für dich als die StreamReader.
Die StreamReader können auch immer nur eine Datenquelle verwenden und lesen.
Du musst dir einen StreamReader eben so vorstellen, dass er einen Datenstrom von Anfang bis Ende lesen soll.
Es ist einfacher uns sauberer eine neue Instanz anzulegen als eine vorherige wieder zuverwenden.
Die File Klasse mit ihren Read Methoden dürfte dir das Handling beim Datei lesen einfacher machen.
Ebenfalls solltest du dir in dem Zuge auch die Write Methoden anschauen.
Dann hast du auch gleich eine einfache Basis zum schreiben von Dateien.
Später kannst du dir dann den StreamWriter anschauen um das schreiben selbst zu implementieren.
Gerade beim lesen/schreiben von großen Dateien(1+ GB) wirst du die Klassen brauchen wenn du dir den Speicher nicht vollschaufeln willst.
Den die File Klassen Methoden liefern dir immer den gesamten Inhalt in einem Rutsch, was bei kleinen Dateien okay ist aber gerade bei großen Brocken dann zu hohen Speicherverbrauch führt.
Link:
https://msdn.microsoft.com/de-de/library/system.io.file(v=vs.110).aspx
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.