Instrukcje: odczytywanie tekstu z pliku

W poniższych przykładach pokazano, jak odczytać tekst synchronicznie i asynchronicznie z pliku tekstowego przy użyciu platformy .NET dla aplikacji komputerowych. W obu przykładach podczas tworzenia wystąpienia StreamReader klasy należy podać względną lub bezwzględną ścieżkę do pliku.

Uwaga

Te przykłady kodu nie mają zastosowania do aplikacji uniwersalnych systemu Windows (UWP), ponieważ środowisko uruchomieniowe systemu Windows udostępnia różne typy strumieni do odczytu i zapisu w plikach. Przykład pokazujący, jak odczytywać tekst z pliku w aplikacji platformy UNIWERSALNEJ systemu Windows, zobacz Szybki start: odczytywanie i zapisywanie plików. Przykłady pokazujące sposób konwertowania strumieni programu .NET Framework i strumieni środowisko wykonawcze systemu Windows można znaleźć w temacie How to: Convert between .NET Framework streams and środowisko wykonawcze systemu Windows streams (Jak konwertować strumienie programu .NET Framework i strumienie środowisko wykonawcze systemu Windows).

Przykład: synchroniczny odczyt w aplikacji konsolowej

W poniższym przykładzie pokazano synchroniczną operację odczytu w aplikacji konsolowej. Ten przykład otwiera plik tekstowy przy użyciu czytnika strumienia, kopiuje zawartość do ciągu i zwraca ciąg do konsoli.

Ważne

W przykładzie przyjęto założenie, że plik o nazwie TestFile.txt już istnieje w tym samym folderze co aplikacja.

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

Przykład: odczyt asynchroniczny w aplikacji WPF

W poniższym przykładzie pokazano asynchroniczną operację odczytu w aplikacji Windows Presentation Foundation (WPF).

Ważne

W przykładzie przyjęto założenie, że plik o nazwie TestFile.txt już istnieje w tym samym folderze co aplikacja.

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

Zobacz też