File.WriteAllLines Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy nowy plik, zapisuje jeden lub więcej ciągów w pliku, a następnie zamyka plik.
Przeciążenia
| Nazwa | Opis |
|---|---|
| WriteAllLines(String, String[], Encoding) |
Tworzy nowy plik, zapisuje określoną tablicę ciągów w pliku przy użyciu określonego kodowania, a następnie zamyka plik. |
| WriteAllLines(String, IEnumerable<String>, Encoding) |
Tworzy nowy plik przy użyciu określonego kodowania, zapisuje kolekcję ciągów w pliku, a następnie zamyka plik. |
| WriteAllLines(String, IEnumerable<String>) |
Tworzy nowy plik, zapisuje kolekcję ciągów w pliku, a następnie zamyka plik. |
| WriteAllLines(String, String[]) |
Tworzy nowy plik, zapisuje określoną tablicę ciągów w pliku, a następnie zamyka plik. |
WriteAllLines(String, String[], Encoding)
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
Tworzy nowy plik, zapisuje określoną tablicę ciągów w pliku przy użyciu określonego kodowania, a następnie zamyka plik.
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)
Parametry
- path
- String
Plik do zapisu.
- contents
- String[]
Tablica ciągów do zapisu w pliku.
Wyjątki
Wersje .NET Framework i .NET Core starsze niż 2.1: path to ciąg o zerowej długości, zawiera tylko biały znak lub zawiera jeden lub więcej nieprawidłowych znaków. Możesz wykonać zapytanie o nieprawidłowe znaki przy użyciu GetInvalidPathChars() metody .
Albo path lub contents ma wartość null.
Określona ścieżka, nazwa pliku lub obie metody przekraczają maksymalną długość zdefiniowaną przez system.
Określona ścieżka jest nieprawidłowa (na przykład znajduje się na niezamapowanym dysku).
Wystąpił błąd we/wy podczas otwierania pliku.
path określony plik, który jest tylko do odczytu.
-lub-
path określony plik, który jest ukryty.
-lub-
Ta operacja nie jest obsługiwana na bieżącej platformie.
-lub-
path określony katalog.
-lub-
Obiekt wywołujący nie ma wymaganych uprawnień.
path jest w nieprawidłowym formacie.
Obiekt wywołujący nie ma wymaganych uprawnień.
Przykłady
W poniższym przykładzie kodu pokazano użycie WriteAllLines metody do pisania tekstu w pliku. W tym przykładzie zostanie utworzony plik, jeśli jeszcze nie istnieje, a do niego zostanie dodany tekst.
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
Uwagi
Jeśli plik docelowy już istnieje, zostanie obcięty i zastąpiony.
Biorąc pod uwagę tablicę ciągów i ścieżkę pliku, ta metoda otwiera określony plik, zapisuje tablicę ciągów w pliku przy użyciu określonego kodowania, a następnie zamyka plik.
Dotyczy
WriteAllLines(String, IEnumerable<String>, Encoding)
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
Tworzy nowy plik przy użyciu określonego kodowania, zapisuje kolekcję ciągów w pliku, a następnie zamyka plik.
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)
Parametry
- path
- String
Plik do zapisu.
- contents
- IEnumerable<String>
Wiersze do zapisu w pliku.
- encoding
- Encoding
Kodowanie znaków do użycia.
Wyjątki
.NET Framework i .NET Core w wersjach starszych niż 2.1: path jest ciągiem o zerowej długości, zawiera tylko biały znak lub zawiera co najmniej jeden nieprawidłowy znak zdefiniowany przez metodę GetInvalidPathChars().
Albo path, contentslub encoding ma wartość null.
path jest nieprawidłowy (na przykład znajduje się na niezamapowanym dysku).
Wystąpił błąd we/wy podczas otwierania pliku.
path przekracza maksymalną długość zdefiniowaną przez system.
path jest w nieprawidłowym formacie.
Obiekt wywołujący nie ma wymaganych uprawnień.
path określony plik, który jest tylko do odczytu.
-lub-
path określony plik, który jest ukryty.
-lub-
Ta operacja nie jest obsługiwana na bieżącej platformie.
-lub-
path jest katalogiem.
-lub-
Obiekt wywołujący nie ma wymaganych uprawnień.
Uwagi
Jeśli plik docelowy już istnieje, zostanie obcięty i zastąpiony.
Za pomocą tej metody można utworzyć plik zawierający następujące elementy:
Wyniki zapytania LINQ to Objects w wierszach pliku uzyskane przy użyciu ReadLines metody .
Zawartość kolekcji, która implementuje IEnumerable<T> ciągi.
Dotyczy
WriteAllLines(String, IEnumerable<String>)
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
Tworzy nowy plik, zapisuje kolekcję ciągów w pliku, a następnie zamyka plik.
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))
Parametry
- path
- String
Plik do zapisu.
- contents
- IEnumerable<String>
Wiersze do zapisu w pliku.
Wyjątki
.NET Framework i .NET Core w wersjach starszych niż 2.1: path jest ciągiem o zerowej długości, zawiera tylko biały znak lub zawiera co najmniej jeden nieprawidłowy znak zdefiniowany przez metodę GetInvalidPathChars().
Albo path lub contents ma wartość null.
path jest nieprawidłowy (na przykład znajduje się na niezamapowanym dysku).
Wystąpił błąd we/wy podczas otwierania pliku.
path przekracza maksymalną długość zdefiniowaną przez system.
path jest w nieprawidłowym formacie.
Obiekt wywołujący nie ma wymaganych uprawnień.
path określony plik, który jest tylko do odczytu.
-lub-
path określony plik, który jest ukryty.
-lub-
Ta operacja nie jest obsługiwana na bieżącej platformie.
-lub-
path jest katalogiem.
-lub-
Obiekt wywołujący nie ma wymaganych uprawnień.
Przykłady
Poniższy przykład zapisuje wybrane wiersze z przykładowego pliku danych do pliku.
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
Uwagi
Domyślnym zachowaniem WriteAllLines(String, IEnumerable<String>) metody jest zapisywanie danych przy użyciu kodowania UTF-8 bez znaku kolejności bajtów (BOM). Jeśli konieczne jest dołączenie identyfikatora UTF-8, takiego jak znacznik kolejności bajtów, na początku pliku, użyj WriteAllLines(String, IEnumerable<String>, Encoding) przeciążenia metody z UTF8 kodowaniem.
Jeśli plik docelowy już istnieje, zostanie obcięty i zastąpiony.
Za pomocą tej metody można utworzyć zawartość klasy kolekcji, która przyjmuje IEnumerable<T> element w konstruktorze, takim jak List<T>, HashSet<T>lub SortedSet<T> klasy.
Dotyczy
WriteAllLines(String, String[])
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
Tworzy nowy plik, zapisuje określoną tablicę ciągów w pliku, a następnie zamyka plik.
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())
Parametry
- path
- String
Plik do zapisu.
- contents
- String[]
Tablica ciągów do zapisu w pliku.
Wyjątki
Wersje .NET Framework i .NET Core starsze niż 2.1: path to ciąg o zerowej długości, zawiera tylko biały znak lub zawiera jeden lub więcej nieprawidłowych znaków. Możesz wykonać zapytanie o nieprawidłowe znaki przy użyciu GetInvalidPathChars() metody .
Albo path lub contents ma wartość null.
Określona ścieżka, nazwa pliku lub obie metody przekraczają maksymalną długość zdefiniowaną przez system.
Określona ścieżka jest nieprawidłowa (na przykład znajduje się na niezamapowanym dysku).
Wystąpił błąd we/wy podczas otwierania pliku.
path określony plik, który jest tylko do odczytu.
-lub-
path określony plik, który jest ukryty.
-lub-
Ta operacja nie jest obsługiwana na bieżącej platformie.
-lub-
path określony katalog.
-lub-
Obiekt wywołujący nie ma wymaganych uprawnień.
path jest w nieprawidłowym formacie.
Obiekt wywołujący nie ma wymaganych uprawnień.
Przykłady
W poniższym przykładzie kodu pokazano użycie WriteAllLines metody do pisania tekstu w pliku. W tym przykładzie zostanie utworzony plik, jeśli jeszcze nie istnieje, a do niego zostanie dodany tekst.
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
Uwagi
Jeśli plik docelowy już istnieje, zostanie obcięty i zastąpiony.
Domyślnym zachowaniem WriteAllLines metody jest zapisywanie danych przy użyciu kodowania UTF-8 bez znaku kolejności bajtów (BOM). Jeśli konieczne jest dołączenie identyfikatora UTF-8, takiego jak znacznik kolejności bajtów, na początku pliku, użyj WriteAllLines(String, String[], Encoding) przeciążenia metody z UTF8 kodowaniem.
Biorąc pod uwagę tablicę ciągów i ścieżkę pliku, ta metoda otwiera określony plik, zapisuje tablicę ciągów w pliku, a następnie zamyka plik.