File.WriteAllLines Methode

Definitie

Hiermee maakt u een nieuw bestand, schrijft u een of meer tekenreeksen naar het bestand en sluit u het bestand.

Overloads

Name Description
WriteAllLines(String, String[], Encoding)

Hiermee maakt u een nieuw bestand, schrijft u de opgegeven tekenreeksmatrix naar het bestand met behulp van de opgegeven codering en sluit u het bestand.

WriteAllLines(String, IEnumerable<String>, Encoding)

Hiermee maakt u een nieuw bestand met behulp van de opgegeven codering, schrijft u een verzameling tekenreeksen naar het bestand en sluit u het bestand.

WriteAllLines(String, String[])

Hiermee maakt u een nieuw bestand, schrijft u de opgegeven tekenreeksmatrix naar het bestand en sluit u het bestand.

WriteAllLines(String, IEnumerable<String>)

Hiermee maakt u een nieuw bestand, schrijft u een verzameling tekenreeksen naar het bestand en sluit u het bestand.

WriteAllLines(String, String[], Encoding)

Hiermee maakt u een nieuw bestand, schrijft u de opgegeven tekenreeksmatrix naar het bestand met behulp van de opgegeven codering en sluit u het bestand.

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)

Parameters

path
String

Het bestand waar naar moet worden geschreven.

contents
String[]

De tekenreeksmatrix die naar het bestand moet worden geschreven.

encoding
Encoding

Een Encoding object dat de tekencodering vertegenwoordigt die is toegepast op de tekenreeksmatrix.

Uitzonderingen

.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars() methode.

contents Of path is null.

Het opgegeven pad, de bestandsnaam of beide overschrijden de door het systeem gedefinieerde maximumlengte.

Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).

Er is een I/O-fout opgetreden tijdens het openen van het bestand.

path een bestand opgegeven dat het kenmerk Alleen-lezen heeft.

– of –

path een bestand opgegeven dat verborgen is.

– of –

Deze bewerking wordt niet ondersteund op het huidige platform.

– of –

path een map opgegeven.

– of –

De beller heeft niet de vereiste machtiging.

path heeft een ongeldige indeling.

De beller heeft niet de vereiste machtiging.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe de WriteAllLines methode wordt gebruikt om tekst naar een bestand te schrijven. In dit voorbeeld wordt er een bestand gemaakt, als het nog niet bestaat en wordt er tekst aan toegevoegd.

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

Opmerkingen

Als het doelbestand al bestaat, wordt het afgekapt en overschreven.

Op basis van een tekenreeksmatrix en een bestandspad opent deze methode het opgegeven bestand, schrijft de tekenreeksmatrix naar het bestand met behulp van de opgegeven codering en sluit het bestand.

Van toepassing op

WriteAllLines(String, IEnumerable<String>, Encoding)

Hiermee maakt u een nieuw bestand met behulp van de opgegeven codering, schrijft u een verzameling tekenreeksen naar het bestand en sluit u het bestand.

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)

Parameters

path
String

Het bestand waar naar moet worden geschreven.

contents
IEnumerable<String>

De regels om naar het bestand te schrijven.

encoding
Encoding

De tekencodering die moet worden gebruikt.

Uitzonderingen

.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens die zijn gedefinieerd door de methode GetInvalidPathChars().

Ofwel path, contentsof encoding wel null.

path is ongeldig (bijvoorbeeld op een niet-toegewezen station).

Er is een I/O-fout opgetreden tijdens het openen van het bestand.

path overschrijdt de door het systeem gedefinieerde maximumlengte.

path heeft een ongeldige indeling.

De beller heeft niet de vereiste machtiging.

path een bestand opgegeven dat het kenmerk Alleen-lezen heeft.

– of –

path een bestand opgegeven dat verborgen is.

– of –

Deze bewerking wordt niet ondersteund op het huidige platform.

– of –

path is een map.

– of –

De beller heeft niet de vereiste machtiging.

Opmerkingen

Als het doelbestand al bestaat, wordt het afgekapt en overschreven.

U kunt deze methode gebruiken om een bestand te maken dat het volgende bevat:

Van toepassing op

WriteAllLines(String, String[])

Hiermee maakt u een nieuw bestand, schrijft u de opgegeven tekenreeksmatrix naar het bestand en sluit u het bestand.

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())

Parameters

path
String

Het bestand waar naar moet worden geschreven.

contents
String[]

De tekenreeksmatrix die naar het bestand moet worden geschreven.

Uitzonderingen

.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars() methode.

contents Of path is null.

Het opgegeven pad, de bestandsnaam of beide overschrijden de door het systeem gedefinieerde maximumlengte.

Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).

Er is een I/O-fout opgetreden tijdens het openen van het bestand.

path een bestand opgegeven dat het kenmerk Alleen-lezen heeft.

– of –

path een bestand opgegeven dat verborgen is.

– of –

Deze bewerking wordt niet ondersteund op het huidige platform.

– of –

path een map opgegeven.

– of –

De beller heeft niet de vereiste machtiging.

path heeft een ongeldige indeling.

De beller heeft niet de vereiste machtiging.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe de WriteAllLines methode wordt gebruikt om tekst naar een bestand te schrijven. In dit voorbeeld wordt er een bestand gemaakt, als het nog niet bestaat en wordt er tekst aan toegevoegd.

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

Opmerkingen

Als het doelbestand al bestaat, wordt het afgekapt en overschreven.

Het standaardgedrag van de WriteAllLines methode is het schrijven van gegevens met behulp van UTF-8-codering zonder bytevolgordemarkering (BOM). Als het nodig is om een UTF-8-id, zoals een bytevolgordemarkering, aan het begin van een bestand op te nemen, gebruikt u de WriteAllLines(String, String[], Encoding) methode overbelast met UTF8 codering.

Met een tekenreeksmatrix en een bestandspad opent deze methode het opgegeven bestand, schrijft de tekenreeksmatrix naar het bestand en sluit het bestand.

Van toepassing op

WriteAllLines(String, IEnumerable<String>)

Hiermee maakt u een nieuw bestand, schrijft u een verzameling tekenreeksen naar het bestand en sluit u het bestand.

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

Parameters

path
String

Het bestand waar naar moet worden geschreven.

contents
IEnumerable<String>

De regels om naar het bestand te schrijven.

Uitzonderingen

.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens die zijn gedefinieerd door de methode GetInvalidPathChars().

contents Of path is null.

path is ongeldig (bijvoorbeeld op een niet-toegewezen station).

Er is een I/O-fout opgetreden tijdens het openen van het bestand.

path overschrijdt de door het systeem gedefinieerde maximumlengte.

path heeft een ongeldige indeling.

De beller heeft niet de vereiste machtiging.

path een bestand opgegeven dat het kenmerk Alleen-lezen heeft.

– of –

path een bestand opgegeven dat verborgen is.

– of –

Deze bewerking wordt niet ondersteund op het huidige platform.

– of –

path is een map.

– of –

De beller heeft niet de vereiste machtiging.

Voorbeelden

In het volgende voorbeeld worden geselecteerde regels uit een voorbeeldgegevensbestand naar een bestand geschreven.

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

Opmerkingen

Het standaardgedrag van de WriteAllLines(String, IEnumerable<String>) methode is het schrijven van gegevens met behulp van UTF-8-codering zonder bytevolgordemarkering (BOM). Als het nodig is om een UTF-8-id, zoals een bytevolgordemarkering, aan het begin van een bestand op te nemen, gebruikt u de WriteAllLines(String, IEnumerable<String>, Encoding) methode overbelast met UTF8 codering.

Als het doelbestand al bestaat, wordt het afgekapt en overschreven.

U kunt deze methode gebruiken om de inhoud te maken voor een verzamelingsklasse die een IEnumerable<T> in de constructor gebruikt, zoals een List<T>, HashSet<T>of een SortedSet<T> klasse.

Van toepassing op