Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Gewusst wie: Schreiben von Text in eine Datei

 

Veröffentlicht: Oktober 2016

Dieses Thema veranschaulicht verschiedene Arten, wie Sie Text in eine Datei für .NET Framework-Anwendungen oder Windows 8.x Store-Apps schreiben können. Die folgenden Klassen und Methoden werden in der Regel zum Schreiben von Text in eine Datei verwendet:

Die Beispiele sind einfach gehalten, um nicht von der ausgeführten Aufgabe abzulenken. Aus diesem Grund wird in den Beispielen, falls überhaupt, nur eine geringe Fehlerüberprüfung und Ausnahmebehandlung durchgeführt. Reale Anwendungen umfassen im Allgemeinen eine robustere Fehlerüberprüfung und Ausnahmebehandlung.

Beispiel

Im folgenden Beispiel wird gezeigt, wie Sie Text mithilfe der StreamWriter-Klasse zeilenweise in eine neue Datei schreiben. Die neue Textdatei wird im Ordner "Eigene Dateien" des Benutzers gespeichert. Da das StreamWriter-Objekt in einer using-Anweisung deklariert und instanziiert wird, wird die Dispose-Methode zum automatischen Leeren und Schließen des Datenstroms aufgerufen.

// Create a string array with the lines of text
string[] lines = { "First line", "Second line", "Third line" };

// Set a variable to the My Documents path.
string mydocpath =
    Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

// Write the string array to a new file named "WriteLines.txt".
using (StreamWriter outputFile = new StreamWriter(mydocpath + @"\WriteLines.txt")) {
    foreach (string line in lines)
        outputFile.WriteLine(line);
}

Beispiel

Das folgende Beispiel zeigt, wie Text mithilfe der StreamWriter-Klasse an eine vorhandene Datei angefügt wird. Dabei wird die Textdatei aus dem vorherigen Beispiel verwendet.

// Set a variable to the My Documents path.
string mydocpath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

// Append text to an existing file named "WriteLines.txt".
using (StreamWriter outputFile = new StreamWriter(mydocpath + @"\WriteLines.txt", true)) {
    outputFile.WriteLine("Fourth Line");
}

Beispiel

Das folgende Beispiel zeigt, wie Sie Text mithilfe der StreamWriter-Klasse asynchron in eine neue Datei schreiben. Zum Aufrufen der WriteAsync-Methode muss sich der Methodenaufruf innerhalb einer async-Methode befinden. Die neue Textdatei wird im Ordner "Eigene Dateien" des Benutzers gespeichert.

static async void WriteTextAsync(string text)
{
    // Set a variable to the My Documents path.
    string mydocpath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

    // Write the text asynchronously to a new file named "WriteTextAsync.txt".
    using (StreamWriter outputFile = new StreamWriter(mydocpath + @"\WriteTextAsync.txt")) {
        await outputFile.WriteAsync(text);
    }
}

Beispiel

Das folgende Beispiel zeigt, wie Sie mithilfe der File-Klasse Text in eine neue Datei schreiben und neue Textzeilen an diese Datei anfügen. Durch die Methoden WriteAllText und AppendAllLines wird die Datei automatisch geöffnet und geschlossen. Wenn der für die WriteAllText-Methode angegebene Pfad bereits vorhanden ist, wird die Datei überschrieben.

// Create a string array with the lines of text
string text = "First line" + Environment.NewLine;

// Set a variable to the My Documents path.
string mydocpath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

// Write the text to a new file named "WriteFile.txt".
File.WriteAllText(mydocpath + @"\WriteFile.txt", text);

// Create a string array with the additional lines of text
string[] lines = { "New line 1", "New line 2" };

// Append new lines of text to the file
File.AppendAllLines(mydocpath + @"\WriteFile.txt", lines);

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie Benutzereingaben asynchron in eine Textdatei in einer Windows 8.x Store-App geschrieben werden. Aus Sicherheitsgründen muss in der Regel ein FileOpenPicker-Steuerelement verwendet werden, wenn eine Datei von einer Windows 8.x Store-App geöffnet wird. In diesem Beispiel wird FileOpenPicker nach Textdateien gefiltert.

<Page
    x:Class="OpenFileWindowsStore.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:OpenFileWindowsStore"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Button Content="save text to a file" HorizontalAlignment="Left" Margin="103,417,0,0" VerticalAlignment="Top" 
                Width="329" Height="86" FontSize="35" Click="Button_Click"/>
        <TextBox Name="UserInputTextBox"  FontSize="18" HorizontalAlignment="Left" Margin="106,146,0,0" 
                 TextWrapping="Wrap" Text="Write some text here, and select a file to write it to." VerticalAlignment="Top" 
                 Height="201" Width="558" AcceptsReturn="True"/>
        <TextBlock Name="StatusTextBox" HorizontalAlignment="Left" Margin="106,570,0,147" TextWrapping="Wrap" Text="Status:" 
                   VerticalAlignment="Center" Height="51" Width="1074" FontSize="18" />
    </Grid>
</Page>
using System;
using System.IO;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.Storage;
using System.Text;
using Windows.Storage.Pickers;
using Windows.UI.Popups; 

namespace OpenFileWindowsStore
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        // Create a file picker to open a file. Most file access in Windows Store Apps
        // requires the use of a file picker for security purposes.
        FileOpenPicker picker = new FileOpenPicker();
        private async void Button_Click(object sender, RoutedEventArgs e)
        {

           // Set properties on the file picker such as start location and the type 
            // of files to display.
            picker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
            picker.ViewMode = PickerViewMode.List;
            picker.FileTypeFilter.Add(".txt");

            // Show picker enabling user to pick one file.
            StorageFile result = await picker.PickSingleFileAsync();

            if (result != null)
            {
                try
                {
                    // Use FileIO to replace the content of the text file
                    await FileIO.WriteTextAsync(result, UserInputTextBox.Text);

                    // Display a success message
                    StatusTextBox.Text = "Status: File saved successfully";
                }
                catch (Exception ex)
                {
                    // Display an error message
                    StatusTextBox.Text = "Status: error saving the file - " + ex.Message;
                }
            }
            else
                StatusTextBox.Text = "Status: User cancelled save operation";
        }
    }
}
Anzeigen: