File.WriteAllLines Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
, contents
oder 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.