Teilen über


File.WriteAllLines Methode

Definition

Erstellt eine neue Datei, schreibt eine oder mehrere Zeichenfolgen in die Datei und schließt dann die Datei.

Überlädt

WriteAllLines(String, String[], Encoding)

Erstellt eine neue Datei, schreibt das angegebene Zeichenfolgenarray mithilfe der angegebenen Codierung in die Datei und schließt dann die Datei.

WriteAllLines(String, IEnumerable<String>, Encoding)

Erstellt eine neue Datei mithilfe der angegebenen Codierung, schreibt eine Sammlung von Zeichenfolgen in die Datei und schließt dann die Datei.

WriteAllLines(String, IEnumerable<String>)

Erstellt eine neue Datei, schreibt eine Sammlung von Zeichenfolgen in die Datei und schließt dann die Datei.

WriteAllLines(String, String[])

Erstellt eine neue Datei, schreibt das angegebene Zeichenfolgenarray in die Datei und schließt dann die Datei.

WriteAllLines(String, String[], Encoding)

Quelle:
File.cs
Quelle:
File.cs
Quelle:
File.cs

Erstellt eine neue Datei, schreibt das angegebene Zeichenfolgenarray mithilfe der angegebenen Codierung in die Datei und schließt dann die Datei.

public:
 static void WriteAllLines(System::String ^ path, cli::array <System::String ^> ^ contents, System::Text::Encoding ^ encoding);
public static void WriteAllLines (string path, string[] contents, System.Text.Encoding encoding);
static member WriteAllLines : string * string[] * System.Text.Encoding -> unit
Public Shared Sub WriteAllLines (path As String, contents As String(), encoding As Encoding)

Parameter

path
String

Die Datei, in die geschrieben werden soll.

contents
String[]

Das Zeichenfolgenarray, das in die Datei geschrieben werden soll.

encoding
Encoding

Ein Encoding-Objekt, das die auf das Zeichenfolgenarray angewendete Zeichencodierung darstellt.

Ausnahmen

.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path ist eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Sie können ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode abfragen.

Entweder path oder contents ist null.

Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.

Der angegebene Pfad ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).

Beim Öffnen der Datei ist ein E/A-Fehler aufgetreten.

path eine Datei angegeben, die schreibgeschützt ist.

-oder-

path eine ausgeblendete Datei angegeben.

-oder-

Dieser Vorgang wird auf der aktuellen Plattform nicht unterstützt.

-oder-

path ein Verzeichnis angegeben.

-oder-

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

path weist ein ungültiges Format auf.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Beispiele

Im folgenden Codebeispiel wird die Verwendung der WriteAllLines-Methode zum Schreiben von Text in eine Datei veranschaulicht. In diesem Beispiel wird eine Datei erstellt, sofern sie noch nicht vorhanden ist, und ihr Text hinzugefügt.

using System;
using System.IO;
using System.Text;

class Test
{
    public static void Main()
    {
        string path = @"c:\temp\MyTest.txt";

        // This text is added only once to the file.
        if (!File.Exists(path))
        {
            // Create a file to write to.
            string[] createText = { "Hello", "And", "Welcome" };
            File.WriteAllLines(path, createText, Encoding.UTF8);
        }

        // This text is always added, making the file longer over time
        // if it is not deleted.
        string appendText = "This is extra text" + Environment.NewLine;
        File.AppendAllText(path, appendText, Encoding.UTF8);

        // Open the file to read from.
        string[] readText = File.ReadAllLines(path, Encoding.UTF8);
        foreach (string s in readText)
        {
            Console.WriteLine(s);
        }
    }
}
open System
open System.IO
open System.Text

let path = @"c:\temp\MyTest.txt"

// This text is added only once to the file.
if File.Exists path |> not then
    // Create a file to write to.
    let createText = [ "Hello"; "And"; "Welcome" ]
    File.WriteAllLines(path, createText, Encoding.UTF8)

// This text is always added, making the file longer over time
// if it is not deleted.
let appendText =
    "This is extra text" + Environment.NewLine

File.AppendAllText(path, appendText, Encoding.UTF8)

// Open the file to read from.
let readText = File.ReadAllLines(path, Encoding.UTF8)

for s in readText do
    printfn $"{s}"
Imports System.IO
Imports System.Text

Public Class Test
    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"
        Dim sw As StreamWriter

        ' This text is added only once to the file.
        If File.Exists(path) = False Then

            ' Create a file to write to.
            Dim createText() As String = {"Hello", "And", "Welcome"}
            File.WriteAllLines(path, createText, Encoding.UTF8)
        End If

        ' This text is always added, making the file longer over time
        ' if it is not deleted.
        Dim appendText As String = "This is extra text" + Environment.NewLine
        File.AppendAllText(path, appendText, Encoding.UTF8)

        ' Open the file to read from.
        Dim readText() As String = File.ReadAllLines(path, Encoding.UTF8)
        Dim s As String
        For Each s In readText
            Console.WriteLine(s)
        Next
    End Sub
End Class

Hinweise

Wenn die Zieldatei bereits vorhanden ist, wird sie abgeschnitten und überschrieben.

Angesichts eines Zeichenfolgenarrays und eines Dateipfads öffnet diese Methode die angegebene Datei, schreibt das Zeichenfolgenarray mithilfe der angegebenen Codierung in die Datei und schließt dann die Datei.

Gilt für:

WriteAllLines(String, IEnumerable<String>, Encoding)

Quelle:
File.cs
Quelle:
File.cs
Quelle:
File.cs

Erstellt eine neue Datei mithilfe der angegebenen Codierung, schreibt eine Sammlung von Zeichenfolgen in die Datei und schließt dann die Datei.

public:
 static void WriteAllLines(System::String ^ path, System::Collections::Generic::IEnumerable<System::String ^> ^ contents, System::Text::Encoding ^ encoding);
public static void WriteAllLines (string path, System.Collections.Generic.IEnumerable<string> contents, System.Text.Encoding encoding);
static member WriteAllLines : string * seq<string> * System.Text.Encoding -> unit
Public Shared Sub WriteAllLines (path As String, contents As IEnumerable(Of String), encoding As Encoding)

Parameter

path
String

Die Datei, in die geschrieben werden soll.

contents
IEnumerable<String>

Die Zeilen, die in die Datei geschrieben werden sollen.

encoding
Encoding

Die zu verwendende Zeichencodierung.

Ausnahmen

.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path ist eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen, das von der GetInvalidPathChars()-Methode definiert ist.

Entweder path, contentsoder encoding ist null.

path ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).

Beim Öffnen der Datei ist ein E/A-Fehler aufgetreten.

path die vom System definierte maximale Länge überschreitet.

path weist ein ungültiges Format auf.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

path eine Datei angegeben, die schreibgeschützt ist.

-oder-

path eine ausgeblendete Datei angegeben.

-oder-

Dieser Vorgang wird auf der aktuellen Plattform nicht unterstützt.

-oder-

path ist ein Verzeichnis.

-oder-

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Hinweise

Wenn die Zieldatei bereits vorhanden ist, wird sie abgeschnitten und überschrieben.

Mit dieser Methode können Sie eine Datei erstellen, die Folgendes enthält:

  • Die Ergebnisse eines LINQ to Objects Abfrage in den Zeilen einer Datei, wie sie mithilfe der ReadLines-Methode abgerufen werden.

  • Der Inhalt einer Auflistung, die eine IEnumerable<T> von Zeichenfolgen implementiert.

Gilt für:

WriteAllLines(String, IEnumerable<String>)

Quelle:
File.cs
Quelle:
File.cs
Quelle:
File.cs

Erstellt eine neue Datei, schreibt eine Sammlung von Zeichenfolgen in die Datei und schließt dann die Datei.

public:
 static void WriteAllLines(System::String ^ path, System::Collections::Generic::IEnumerable<System::String ^> ^ contents);
public static void WriteAllLines (string path, System.Collections.Generic.IEnumerable<string> contents);
static member WriteAllLines : string * seq<string> -> unit
Public Shared Sub WriteAllLines (path As String, contents As IEnumerable(Of String))

Parameter

path
String

Die Datei, in die geschrieben werden soll.

contents
IEnumerable<String>

Die Zeilen, die in die Datei geschrieben werden sollen.

Ausnahmen

.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path ist eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen, das von der GetInvalidPathChars()-Methode definiert ist.

Entweder path oder contents ist null.

path ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).

Beim Öffnen der Datei ist ein E/A-Fehler aufgetreten.

path die vom System definierte maximale Länge überschreitet.

path weist ein ungültiges Format auf.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

path eine Datei angegeben, die schreibgeschützt ist.

-oder-

path eine ausgeblendete Datei angegeben.

-oder-

Dieser Vorgang wird auf der aktuellen Plattform nicht unterstützt.

-oder-

path ist ein Verzeichnis.

-oder-

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Beispiele

Im folgenden Beispiel werden ausgewählte Zeilen aus einer Beispieldatendatei in eine Datei geschrieben.

using System;
using System.IO;
using System.Linq;

class Program
{
    static string dataPath = @"c:\temp\timestamps.txt";

    static void Main(string[] args)
    {
        CreateSampleFile();

        var JulyWeekends = from line in File.ReadLines(dataPath)
                           where (line.StartsWith("Saturday") ||
                           line.StartsWith("Sunday")) &
                           line.Contains("July")
                           select line;

        File.WriteAllLines(@"C:\temp\selectedDays.txt", JulyWeekends);

        var MarchMondays = from line in File.ReadLines(dataPath)
                           where line.StartsWith("Monday") &&
                           line.Contains("March")
                           select line;

        File.AppendAllLines(@"C:\temp\selectedDays.txt", MarchMondays);
    }

    static void CreateSampleFile()
    {
        DateTime TimeStamp = new DateTime(1700, 1, 1);

        using (StreamWriter sw = new StreamWriter(dataPath))
        {
            for (int i = 0; i < 500; i++)
            {
                DateTime TS1 = TimeStamp.AddYears(i);
                DateTime TS2 = TS1.AddMonths(i);
                DateTime TS3 = TS2.AddDays(i);
                sw.WriteLine(TS3.ToLongDateString());
            }
        }
    }
}
open System
open System.IO

let dataPath = @"c:\temp\timestamps.txt"

let createSampleFile () =
    let timeStamp = DateTime(1700, 1, 1)

    use sw = new StreamWriter(dataPath)

    for i = 0 to 499 do
        let ts1 = timeStamp.AddYears i
        let ts2 = ts1.AddMonths i
        let ts3 = ts2.AddDays i
        ts3.ToLongDateString() |> sw.WriteLine

createSampleFile ()

let julyWeekends =
    File.ReadLines dataPath
    |> Seq.filter (fun line ->
        (line.StartsWith "Saturday"
         || line.StartsWith "Sunday")
        && line.Contains "July")

File.WriteAllLines(@"C:\temp\selectedDays.txt", julyWeekends)

let marchMondays =
    File.ReadLines dataPath
    |> Seq.filter (fun line -> line.StartsWith "Monday" && line.Contains "March")

File.AppendAllLines(@"C:\temp\selectedDays.txt", marchMondays)
Imports System.IO
Imports System.Linq

Class Program
    Shared dataPath As String = "c:\temp\timestamps.txt"

    Public Shared Sub Main(ByVal args As String())
        CreateSampleFile()

        Dim JulyWeekends = From line In File.ReadLines(dataPath) _
            Where (line.StartsWith("Saturday") OrElse _
            line.StartsWith("Sunday")) And line.Contains("July") _
            Select line

        File.WriteAllLines("C:\temp\selectedDays.txt", JulyWeekends)

        Dim MarchMondays = From line In File.ReadLines(dataPath) _
            Where line.StartsWith("Monday") AndAlso line.Contains("March") _
            Select line

        File.AppendAllLines("C:\temp\selectedDays.txt", MarchMondays)
    End Sub

    Private Shared Sub CreateSampleFile()
        Dim TimeStamp As New DateTime(1700, 1, 1)

        Using sw As New StreamWriter(dataPath)
            For i As Integer = 0 To 499
                Dim TS1 As DateTime = TimeStamp.AddYears(i)
                Dim TS2 As DateTime = TS1.AddMonths(i)
                Dim TS3 As DateTime = TS2.AddDays(i)

                sw.WriteLine(TS3.ToLongDateString())
            Next
        End Using
    End Sub
End Class

Hinweise

Das Standardverhalten der WriteAllLines(String, IEnumerable<String>)-Methode besteht darin, Daten mithilfe der UTF-8-Codierung ohne Bytereihenfolgezeichen (BOM) zu schreiben. Wenn ein UTF-8-Bezeichner, z. B. ein Bytereihenfolgezeichen, am Anfang einer Datei eingeschlossen werden muss, verwenden Sie die WriteAllLines(String, IEnumerable<String>, Encoding) Methodenüberladung mit UTF8 Codierung.

Wenn die Zieldatei bereits vorhanden ist, wird sie abgeschnitten und überschrieben.

Mit dieser Methode können Sie den Inhalt einer Sammlungsklasse erstellen, die eine IEnumerable<T> im Konstruktor akzeptiert, z. B. eine List<T>, HashSet<T>oder eine SortedSet<T> Klasse.

Gilt für:

WriteAllLines(String, String[])

Quelle:
File.cs
Quelle:
File.cs
Quelle:
File.cs

Erstellt eine neue Datei, schreibt das angegebene Zeichenfolgenarray in die Datei und schließt dann die Datei.

public:
 static void WriteAllLines(System::String ^ path, cli::array <System::String ^> ^ contents);
public static void WriteAllLines (string path, string[] contents);
static member WriteAllLines : string * string[] -> unit
Public Shared Sub WriteAllLines (path As String, contents As String())

Parameter

path
String

Die Datei, in die geschrieben werden soll.

contents
String[]

Das Zeichenfolgenarray, das in die Datei geschrieben werden soll.

Ausnahmen

.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path ist eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Sie können ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode abfragen.

Entweder path oder contents ist null.

Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.

Der angegebene Pfad ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).

Beim Öffnen der Datei ist ein E/A-Fehler aufgetreten.

path eine Datei angegeben, die schreibgeschützt ist.

-oder-

path eine ausgeblendete Datei angegeben.

-oder-

Dieser Vorgang wird auf der aktuellen Plattform nicht unterstützt.

-oder-

path ein Verzeichnis angegeben.

-oder-

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

path weist ein ungültiges Format auf.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Beispiele

Im folgenden Codebeispiel wird die Verwendung der WriteAllLines-Methode zum Schreiben von Text in eine Datei veranschaulicht. In diesem Beispiel wird eine Datei erstellt, sofern sie noch nicht vorhanden ist, und ihr Text hinzugefügt.

using System;
using System.IO;
class Test
{
    public static void Main()
    {
        string path = @"c:\temp\MyTest.txt";

        // This text is added only once to the file.
        if (!File.Exists(path))
        {
            // Create a file to write to.
            string[] createText = { "Hello", "And", "Welcome" };
            File.WriteAllLines(path, createText);
        }

        // This text is always added, making the file longer over time
        // if it is not deleted.
        string appendText = "This is extra text" + Environment.NewLine;
        File.AppendAllText(path, appendText);

        // Open the file to read from.
        string[] readText = File.ReadAllLines(path);
        foreach (string s in readText)
        {
            Console.WriteLine(s);
        }
    }
}
open System
open System.IO

let path = @"c:\temp\MyTest.txt"

// This text is added only once to the file.
if File.Exists path |> not then
    // Create a file to write to.
    let createText = [ "Hello"; "And"; "Welcome" ]
    File.WriteAllLines(path, createText)

// This text is always added, making the file longer over time
// if it is not deleted.
let appendText =
    "This is extra text" + Environment.NewLine

File.AppendAllText(path, appendText)

// Open the file to read from.
let readText = File.ReadAllLines path

for s in readText do
    printfn $"{s}"
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"
        Dim sw As StreamWriter

        ' This text is added only once to the file.
        If File.Exists(path) = False Then

            ' Create a file to write to.
            Dim createText() As String = {"Hello", "And", "Welcome"}
            File.WriteAllLines(path, createText)
        End If

        ' This text is always added, making the file longer over time
        ' if it is not deleted.
        Dim appendText As String = "This is extra text" + Environment.NewLine
        File.AppendAllText(path, appendText)

        ' Open the file to read from.
        Dim readText() As String = File.ReadAllLines(path)
        Dim s As String
        For Each s In readText
            Console.WriteLine(s)
        Next
    End Sub
End Class

Hinweise

Wenn die Zieldatei bereits vorhanden ist, wird sie abgeschnitten und überschrieben.

Das Standardverhalten der WriteAllLines-Methode besteht darin, Daten mit UTF-8-Codierung ohne Bytereihenfolgezeichen (BOM) zu schreiben. Wenn ein UTF-8-Bezeichner, z. B. ein Bytereihenfolgezeichen, am Anfang einer Datei eingeschlossen werden muss, verwenden Sie die WriteAllLines(String, String[], Encoding) Methodenüberladung mit UTF8 Codierung.

Angesichts eines Zeichenfolgenarrays und eines Dateipfads öffnet diese Methode die angegebene Datei, schreibt das Zeichenfolgenarray in die Datei und schließt dann die Datei.

Gilt für: