Vorgehensweise: Lesen von Text aus einer Datei
In den folgenden Beispielen wird das synchrone und asynchrone Lesen aus einer Textdatei mithilfe von .NET für Desktop-Apps veranschaulicht. In beiden Beispielen geben Sie beim Erstellen der Instanz der StreamReader-Klasse einen absoluten oder relativen Pfad zur Datei an.
Hinweis
Diese Codebeispiele gelten nicht für Universelle Windows-Apps (UWP), da die Windows-Runtime verschiedene Datenstromtypen zum Lesen und Schreiben in Dateien bereitstellt. Ein Beispiel für das Lesen von Text aus einer Datei in einer UWP-App finden Sie unter Schnellstart: Lesen und Schreiben von Dateien. Beispiele für die Konvertierung von .NET Framework-Streams in Windows-Runtime-Streams und umgekehrt finden Sie unter Vorgehensweise: Konvertieren zwischen .NET Framework-Streams und Windows-Runtime-Streams.
Beispiel: Synchrones Lesen in einer Konsolen-App
Im folgenden Beispiel wird ein synchroner Lesevorgang in einer Konsolen-App veranschaulicht. In diesem Beispiel wird die Textdatei mit einem StreamReader geöffnet, ihr Inhalt wird in eine Zeichenfolge kopiert, und die Zeichenfolge wird an die Konsole ausgegeben.
Wichtig
In dem Beispiel wird angenommen, dass eine Datei mit dem Namen TestFile.txt bereits in demselben Ordner vorhanden ist, in dem sich auch die App befindet.
using System;
using System.IO;
class Program
{
public static void Main()
{
try
{
// Open the text file using a stream reader.
using (var sr = new StreamReader("TestFile.txt"))
{
// Read the stream as a string, and write the string to the console.
Console.WriteLine(sr.ReadToEnd());
}
}
catch (IOException e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
}
}
Imports System.IO
Module Program
Public Sub Main()
Try
' Open the file using a stream reader.
Using sr As New StreamReader("TestFile.txt")
' Read the stream as a string and write the string to the console.
Console.WriteLine(sr.ReadToEnd())
End Using
Catch e As IOException
Console.WriteLine("The file could not be read:")
Console.WriteLine(e.Message)
End Try
End Sub
End Module
Beispiel: Asynchrones Lesen in einer WPF-App
Im folgenden Beispiel wird ein asynchroner Lesevorgang in einer WPF-App veranschaulicht.
Wichtig
In dem Beispiel wird angenommen, dass eine Datei mit dem Namen TestFile.txt bereits in demselben Ordner vorhanden ist, in dem sich auch die App befindet.
using System.IO;
using System.Windows;
namespace TextFiles;
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow() => InitializeComponent();
private async void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
try
{
using (var sr = new StreamReader("TestFile.txt"))
{
ResultBlock.Text = await sr.ReadToEndAsync();
}
}
catch (FileNotFoundException ex)
{
ResultBlock.Text = ex.Message;
}
}
}
Imports System.IO
Imports System.Windows
''' <summary>
''' Interaction logic for MainWindow.xaml
''' </summary>
Partial Public Class MainWindow
Inherits Window
Public Sub New()
InitializeComponent()
End Sub
Private Async Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs)
Try
Using sr As New StreamReader("TestFile.txt")
ResultBlock.Text = Await sr.ReadToEndAsync()
End Using
Catch ex As FileNotFoundException
ResultBlock.Text = ex.Message
End Try
End Sub
End Class
Siehe auch
- StreamReader
- File.OpenText
- StreamReader.ReadLine
- Asynchrone Datei-E/A
- How to: Erstellen einer Verzeichnisauflistung
- Schnellstart: Lesen und Schreiben von Dateien
- How to: Konvertieren zwischen .NET Framework-Streams und Windows-Runtime-Streams
- How to: Lesen von bzw. Schreiben in eine neu erstellte Datendatei
- How to: Öffnen und Anfügen an eine Protokolldatei
- How to: Schreiben von Text in eine Datei
- How to: Lesen von Zeichen aus einer Zeichenfolge
- How to: Schreiben von Zeichen in eine Zeichenfolge
- Datei- und Stream-E/A