Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Wie kann ich den Inhalt eines FileStreams in Console.WriteLine anzeigen?
AndiT
myCSharp.de - Member



Dabei seit:
Beiträge: 1

Themenstarter:

Wie kann ich den Inhalt eines FileStreams in Console.WriteLine anzeigen?

beantworten | zitieren | melden

Hallo,

Ich habe hier ein kleines Programm und habe mir mitten drin in den Kopf gesetzt ich würde gerne in einem Console.WriteLine darstellen, was gerade der FileStream fsSource enthält. Nach einigem googeln, ist mir klar, dass das über diverse Schritte gehen muss, weil direkt nichts findbar ist.
Wie mache ich das am geschicktesten?
Die Datei enthält nur ein paar Zeilen Text und ist nicht wichtig.
Danke für ein paar Hinweise.

Hier das Programm:


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // Als erstes musst du verstehen, dass die using statements geschachtelt sind
            // was nur geht, solange nur ein statement folgt. 
            // das dritte benötigt daher geschweifte Klammern
            using (FileStream fsSource = File.OpenRead(@"c:\temp\source.txt"))
                using (FileStream fsHeader = File.OpenWrite(@"c:\temp\header.txt"))
                    using (FileStream fsBody = File.OpenWrite(@"c:\temp\body.txt"))
                    {
                        byte[] header = new byte[20];
                        byte[] body = new byte[fsSource.Length - 20];
                        // Lies aus fsSource und rein in das byte array namens header, 
                        // beginne mit byte[0] und schreibe header.Length viele rein
                        fsSource.Read(header, 0, header.Length);

                        // Schreib in den FileStream namens fsHeader was im Byte Array namens header drin ist
                        fsHeader.Write(header, 0, header.Length);
                        
                        // Jetzt möchte ich gerne den Inhalt von fsSource in einem Console.WriteLine zeigen
                        // weiß aber leider nicht wie ich das anstellen soll...
                        // mit StringBuilder, StreamWriter?
                        StringBuilder sb = new StringBuilder();
                        //sb.Append()
                        //Console.WriteLine();

                        fsSource.Read(body, 0, body.Length);
                        fsBody.Write(body, 0, body.Length);
                        fsBody.Close();
                        fsHeader.Close();
                        fsSource.Close();
                    }
          }
    }
}
Danke und Gruß
Andi
private Nachricht | Beiträge des Benutzers
steffen_dec
myCSharp.de - Member



Dabei seit:
Beiträge: 325

beantworten | zitieren | melden

Hallo,

wenn deine gelesenen Bytes einfache ASCII-Zeichen sind, dann so ausgeben:


Console.WriteLine(Encoding.ASCII.GetString(header));

Oder willst Du den Rest von fsSource nach dem Header anzeigen?
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von steffen_dec am .
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1918
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

Arbeite doch hier lieber mit der File Klasse.
Dort kannst du dir mit File.ReadAllLines die Zeilen aus den Dateien liefern lassen.
Hier kannst du dann mit einer foreach/for Schleife die Zeilen durchgehen und per Console.WriteLine ausgeben lassen.
Ist doch viel einfacher.

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.
private Nachricht | Beiträge des Benutzers
hummigbird1
myCSharp.de - Member

Avatar #avatar-3534.jpg


Dabei seit:
Beiträge: 127

beantworten | zitieren | melden

Oder du benutzt gleich File.ReadAllText Method (String) (System.IO)
private Nachricht | Beiträge des Benutzers