File.WriteAllLines Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar en ny fil, skriver en eller flera strängar till filen och stänger sedan filen.
Överlagringar
| Name | Description |
|---|---|
| WriteAllLines(String, String[], Encoding) |
Skapar en ny fil, skriver den angivna strängmatrisen till filen med hjälp av den angivna kodningen och stänger sedan filen. |
| WriteAllLines(String, IEnumerable<String>, Encoding) |
Skapar en ny fil med den angivna kodningen, skriver en samling strängar till filen och stänger sedan filen. |
| WriteAllLines(String, IEnumerable<String>) |
Skapar en ny fil, skriver en samling strängar till filen och stänger sedan filen. |
| WriteAllLines(String, String[]) |
Skapar en ny fil, skriver den angivna strängmatrisen till filen och stänger sedan filen. |
WriteAllLines(String, String[], Encoding)
- Källa:
- File.cs
- Källa:
- File.cs
- Källa:
- File.cs
- Källa:
- File.cs
- Källa:
- File.cs
Skapar en ny fil, skriver den angivna strängmatrisen till filen med hjälp av den angivna kodningen och stänger sedan filen.
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)
Parametrar
- path
- String
Filen som ska skrivas till.
- contents
- String[]
Strängmatrisen som ska skrivas till filen.
- encoding
- Encoding
Ett Encoding objekt som representerar teckenkodningen som tillämpas på strängmatrisen.
Undantag
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars() av metoden .
Antingen path eller contents är null.
Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden.
Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).
Ett I/O-fel uppstod när filen öppnades.
path har angett en fil som är skrivskyddad.
-eller-
path har angett en fil som är dold.
-eller-
Den här åtgärden stöds inte på den aktuella plattformen.
-eller-
path har angett en katalog.
-eller-
Anroparen har inte den behörighet som krävs.
path är i ett ogiltigt format.
Anroparen har inte den behörighet som krävs.
Exempel
Följande kodexempel visar hur metoden används WriteAllLines för att skriva text till en fil. I det här exemplet skapas en fil, om den inte redan finns, och text läggs till i den.
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
Kommentarer
Om målfilen redan finns trunkeras den och skrivs över.
Med tanke på en strängmatris och en filsökväg öppnar den här metoden den angivna filen, skriver strängmatrisen till filen med den angivna kodningen och stänger sedan filen.
Gäller för
WriteAllLines(String, IEnumerable<String>, Encoding)
- Källa:
- File.cs
- Källa:
- File.cs
- Källa:
- File.cs
- Källa:
- File.cs
- Källa:
- File.cs
Skapar en ny fil med den angivna kodningen, skriver en samling strängar till filen och stänger sedan filen.
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)
Parametrar
- path
- String
Filen som ska skrivas till.
- contents
- IEnumerable<String>
Raderna som ska skrivas till filen.
- encoding
- Encoding
Teckenkodningen som ska användas.
Undantag
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken som definierats av metoden GetInvalidPathChars().
Antingen path, contentseller encoding är null.
path är ogiltigt (till exempel är det på en ommappad enhet).
Ett I/O-fel uppstod när filen öppnades.
path överskrider den systemdefinierade maximala längden.
path är i ett ogiltigt format.
Anroparen har inte den behörighet som krävs.
path har angett en fil som är skrivskyddad.
-eller-
path har angett en fil som är dold.
-eller-
Den här åtgärden stöds inte på den aktuella plattformen.
-eller-
path är en katalog.
-eller-
Anroparen har inte den behörighet som krävs.
Kommentarer
Om målfilen redan finns trunkeras den och skrivs över.
Du kan använda den här metoden för att skapa en fil som innehåller följande:
Resultatet av en LINQ-till-objekt-fråga på raderna i en fil, enligt ReadLines metoden .
Innehållet i en samling som implementerar en IEnumerable<T> sträng.
Gäller för
WriteAllLines(String, IEnumerable<String>)
- Källa:
- File.cs
- Källa:
- File.cs
- Källa:
- File.cs
- Källa:
- File.cs
- Källa:
- File.cs
Skapar en ny fil, skriver en samling strängar till filen och stänger sedan filen.
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))
Parametrar
- path
- String
Filen som ska skrivas till.
- contents
- IEnumerable<String>
Raderna som ska skrivas till filen.
Undantag
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken som definierats av metoden GetInvalidPathChars().
Antingen path eller contents är null.
path är ogiltigt (till exempel är det på en ommappad enhet).
Ett I/O-fel uppstod när filen öppnades.
path överskrider den systemdefinierade maximala längden.
path är i ett ogiltigt format.
Anroparen har inte den behörighet som krävs.
path har angett en fil som är skrivskyddad.
-eller-
path har angett en fil som är dold.
-eller-
Den här åtgärden stöds inte på den aktuella plattformen.
-eller-
path är en katalog.
-eller-
Anroparen har inte den behörighet som krävs.
Exempel
I följande exempel skrivs markerade rader från en exempeldatafil till en fil.
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
Kommentarer
Standardbeteendet för WriteAllLines(String, IEnumerable<String>) metoden är att skriva ut data med hjälp av UTF-8-kodning utan byteordningsmärke (BOM). Om det är nödvändigt att inkludera en UTF-8-identifierare, till exempel ett byteordningsmärke, använder du WriteAllLines(String, IEnumerable<String>, Encoding) metodens överlagring med UTF8 kodning i början av en fil.
Om målfilen redan finns trunkeras den och skrivs över.
Du kan använda den här metoden för att skapa innehållet för en samlingsklass som tar en IEnumerable<T> i konstruktorn, till exempel en List<T>, HashSet<T>eller en SortedSet<T> klass.
Gäller för
WriteAllLines(String, String[])
- Källa:
- File.cs
- Källa:
- File.cs
- Källa:
- File.cs
- Källa:
- File.cs
- Källa:
- File.cs
Skapar en ny fil, skriver den angivna strängmatrisen till filen och stänger sedan filen.
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())
Parametrar
- path
- String
Filen som ska skrivas till.
- contents
- String[]
Strängmatrisen som ska skrivas till filen.
Undantag
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars() av metoden .
Antingen path eller contents är null.
Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden.
Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).
Ett I/O-fel uppstod när filen öppnades.
path har angett en fil som är skrivskyddad.
-eller-
path har angett en fil som är dold.
-eller-
Den här åtgärden stöds inte på den aktuella plattformen.
-eller-
path har angett en katalog.
-eller-
Anroparen har inte den behörighet som krävs.
path är i ett ogiltigt format.
Anroparen har inte den behörighet som krävs.
Exempel
Följande kodexempel visar hur metoden används WriteAllLines för att skriva text till en fil. I det här exemplet skapas en fil, om den inte redan finns, och text läggs till i den.
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
Kommentarer
Om målfilen redan finns trunkeras den och skrivs över.
Standardbeteendet för WriteAllLines metoden är att skriva ut data med UTF-8-kodning utan byteordningsmärke (BOM). Om det är nödvändigt att inkludera en UTF-8-identifierare, till exempel ett byteordningsmärke, använder du WriteAllLines(String, String[], Encoding) metodens överlagring med UTF8 kodning i början av en fil.
Med tanke på en strängmatris och en filsökväg öppnar den här metoden den angivna filen, skriver strängmatrisen till filen och stänger sedan filen.