要查看英语原文,请勾选“英语”复选框。也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

如何:向文件写入文本

 

本主题展示了针对 .NET Framework 应用程序或 Windows 8.x 应用商店 应用将文本写入文件的几种不同的方式。 下面的类和方法通常用于将文本写入文件:

这些示例都很简单,以便将重点放在正在执行的任务上。 为此,这些示例执行最低限度的错误检查和异常处理(如果有)。 实际的应用程序通常提供更可靠的错误检查和异常处理。

示例

下面的示例演示如何使用 StreamWriter 类,一次一行同步地将文本写入新文件。 新文本文件保存到用户的“我的文档”文件夹中。 因为在 using 语句中已声明并实例化 StreamWriter 对象,所以会调用自动刷新并关闭流的 Dispose 方法。

// 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);
}

示例

下面的示例演示如何使用 StreamWriter 类将文本追加到现有的文件。 它使用上一示例中的同一个文本文件。

// 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");
}

示例

下面的示例演示如何使用 StreamWriter 类异步地将文本写入新文件。 为了调用 WriteAsync 方法,方法调用需要在 async 方法内。 新文本文件保存到用户的“我的文档”文件夹中。

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);
    }
}

示例

下面的示例演示如何使用 File 类将文本写入新文件并将新的文本行追加到同一文件。 WriteAllTextAppendAllLines 方法会自动打开和关闭文件。 如果提供给 WriteAllText 方法的路径已存在,则文件将被覆盖。

// 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);

示例

下面的示例演示如何将用户输入异步写入到 Windows 8.x 应用商店 应用中的一个文本文件。 因为出于安全考虑,从 Windows 8.x 应用商店 应用打开文件通常需要使用 FileOpenPicker 控件。 在该示例中,筛选 FileOpenPicker 以显示文本文件。

<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";
        }
    }
}
显示: