File.WriteAllLines Methode

Definition

Erstellt eine neue Datei, schreibt mindestens eine Zeichenfolge in die Datei und schließt dann die Datei.

Überlädt

WriteAllLines(String, IEnumerable<String>)

Erstellt eine neue Datei, schreibt eine Auflistung 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 die Datei dann.

WriteAllLines(String, IEnumerable<String>, Encoding)

Erstellt eine neue Datei unter Verwendung der angegebenen Codierung, schreibt eine Auflistung von Zeichenfolgen in die Datei und schließt dann die Datei.

WriteAllLines(String, String[], Encoding)

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

WriteAllLines(String, IEnumerable<String>)

Erstellt eine neue Datei, schreibt eine Auflistung 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 älter als 2.1: path ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige Zeichen, die von der GetInvalidPathChars() -Methode definiert werden.

Entweder path oder contents ist null.

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

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

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

path weist ein ungültiges Format auf.

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

path hat eine schreibgeschützte Datei angegeben.

- oder -

path hat eine schreibgeschützte Datei angegeben.

- oder -

Dieser Vorgang wird von 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 Bytereihenfolgemarkierung (BOM) zu schreiben. Wenn es erforderlich ist, einen UTF-8-Bezeichner, z. B. eine Bytereihenfolgenmarkierung, am Anfang einer Datei zu verwenden, verwenden Sie die WriteAllLines(String, IEnumerable<String>, Encoding) Methodenüberladung mit UTF8 Codierung.

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

Sie können diese Methode verwenden, um den Inhalt einer Auflistungsklasse zu erstellen, die einen IEnumerable<T> in ihrem Konstruktor akzeptiert, z. B. eine List<T>- oder HashSet<T>eine SortedSet<T> -Klasse.

Gilt für:

WriteAllLines(String, String[])

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

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 älter als 2.1: path ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.

Entweder path oder contents ist null.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.

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

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

path hat eine schreibgeschützte Datei angegeben.

- oder -

path hat eine schreibgeschützte Datei angegeben.

- oder -

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

- oder -

path hat 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 wird 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 mithilfe der UTF-8-Codierung ohne Bytereihenfolgemarkierung (BOM) zu schreiben. Wenn es erforderlich ist, einen UTF-8-Bezeichner, z. B. eine Bytereihenfolgenmarkierung, am Anfang einer Datei zu verwenden, verwenden Sie die WriteAllLines(String, String[], Encoding) Methodenüberladung mit UTF8 Codierung.

Bei einem Zeichenfolgenarray und einem Dateipfad öffnet diese Methode die angegebene Datei, schreibt das Zeichenfolgenarray in die Datei und schließt dann die Datei.

Gilt für:

WriteAllLines(String, IEnumerable<String>, Encoding)

Erstellt eine neue Datei unter Verwendung der angegebenen Codierung, schreibt eine Auflistung 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 älter als 2.1: path ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige Zeichen, die von der GetInvalidPathChars() -Methode definiert werden.

Entweder path, contents oder encoding ist null.

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

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

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

path weist ein ungültiges Format auf.

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

path hat eine schreibgeschützte Datei angegeben.

- oder -

path hat eine schreibgeschützte Datei angegeben.

- oder -

Dieser Vorgang wird von 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.

Sie können diese Methode verwenden, um eine Datei zu erstellen, die Folgendes enthält:

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

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

Gilt für:

WriteAllLines(String, String[], Encoding)

Erstellt eine neue Datei, schreibt das angegebene Zeichenfolgenarray unter Verwendung 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 Zeichencodierung darstellt, die auf das Zeichenfolgenarray angewendet wird.

Ausnahmen

.NET Framework und .NET Core-Versionen älter als 2.1: path ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.

Entweder path oder contents ist null.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.

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

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

path hat eine schreibgeschützte Datei angegeben.

- oder -

path hat eine schreibgeschützte Datei angegeben.

- oder -

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

- oder -

path hat 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 wird 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.

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

Gilt für: