Sie sind hier: Startseite
 Liste aller Codebeispiele

Zeilenweises Lesen aus einer Textdatei

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

 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