Code-Beispiel
Ein Beispiel zum Einsatz der Klasse System.IO.FileStream, StreamReader aus der .NET-Klassenbibliothek.
Autor: Dr. Holger Schwichtenberg
Beschreibung
Das grundsätzliche Vorgehen beim Lesezugriff auf den Inhalt einer Textdatei ist:
- Erzeugen eines FileStream-Objekts
- Erzeugen eines StreamReader-Objekts auf Basis des FileStream-Objekts
- Setzen des Zeigers auf den Anfang des Streams
- Danach können Inhalte mit Read() und ReadLine() gelesen werden.
- Während des Lesens kann mit while r.Peek() > -1 auf das Erreichen des Dateiendes geprüft werden.
- Aufruf von Close() im StreamReader-Objekt
- Aufruf von Close() im FileStream-Objekt
Beispiel
In diesem Beispiel wird die im vorherigen Unterkapitel erzeugte Protokolldatei wieder eingelesen und ausgegeben.
Programmcodebeispiele Visual Basic .NET (VB.NET)
' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' Zeilenweises Lesen aus einer Textdatei
' (C) Holger@Schwichtenberg.de
' ============================
Sub Datei_lesen()
Const DATEINAME As String = _
"d:\buch\dateisystem\protokoll.txt"
' --- Datei öffnen
Dim fs As FileStream = New FileStream( _
DATEINAME,FileMode.OpenOrCreate, _
FileAccess.ReadWrite)
' --- Stream öffnen
Dim r As StreamReader = New StreamReader(fs)
' --- Zeiger auf den Anfang
r.BaseStream.Seek(0, SeekOrigin.Begin)
' --- Alle Zeilen lesen und an Console ausgeben
While r.Peek() > -1
say(r.ReadLine())
End While
' --- Reader und Stream schließen
r.Close()
fs.Close()
End Sub
Programmcodebeispiele CSharp (C#)
using System;
using System.IO;
namespace FCLBuch._SystemIO {
public class Samples_Dateiinhalte {
public void Datei_lesen() {
// Zeilenweises Lesen aus einer Textdatei
string dateiName = @"..\_daten\dateisystem\protokoll.txt";
// Datei öffnen
FileStream fs = new FileStream(dateiName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
// Stream öffnen
StreamReader r = new StreamReader(fs);
// Zeiger auf den Anfang
r.BaseStream.Seek(0, SeekOrigin.Begin);
// Alle Zeilen lesen und an Console ausgeben
while (r.Peek() > -1)
FclOutput.PrintOut( r.ReadLine() );
// Reader und Stream schliessen
r.Close();
fs.Close();
}
}
}
Querverweise
Liste aller Codebeispiele
Definition '.NET Framework Class Library'
Verfügbarkeit der Klasse 'System.IO.FileStream, StreamReader'
Übersicht über den FCL-Namensraum 'System.IO'
.NET & Visual Studio Community Portal