Bagikan melalui


File.WriteAllLines Metode

Definisi

Membuat file baru, menulis satu atau beberapa string ke file, lalu menutup file.

Overload

WriteAllLines(String, String[], Encoding)

Membuat file baru, menulis array string yang ditentukan ke file dengan menggunakan pengodean yang ditentukan, lalu menutup file.

WriteAllLines(String, IEnumerable<String>, Encoding)

Membuat file baru dengan menggunakan pengodean yang ditentukan, menulis kumpulan string ke file, lalu menutup file.

WriteAllLines(String, IEnumerable<String>)

Membuat file baru, menulis kumpulan string ke file, lalu menutup file.

WriteAllLines(String, String[])

Membuat file baru, menulis array string yang ditentukan ke file, lalu menutup file.

WriteAllLines(String, String[], Encoding)

Sumber:
File.cs
Sumber:
File.cs
Sumber:
File.cs

Membuat file baru, menulis array string yang ditentukan ke file dengan menggunakan pengodean yang ditentukan, lalu menutup file.

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

File yang akan ditulis.

contents
String[]

Array string untuk menulis ke file.

encoding
Encoding

Objek Encoding yang mewakili pengodean karakter yang diterapkan ke array string.

Pengecualian

Versi .NET Framework dan .NET Core yang lebih lama dari 2.1: path adalah string panjang nol, hanya berisi spasi kosong, atau berisi satu atau beberapa karakter yang tidak valid. Anda dapat mengkueri karakter yang tidak valid dengan menggunakan metode GetInvalidPathChars().

Baik path atau contentsnull.

Jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.

Jalur yang ditentukan tidak valid (misalnya, jalur tersebut berada pada drive yang tidak dipetakan).

Terjadi kesalahan I/O saat membuka file.

path menentukan file yang bersifat baca-saja.

-atau-

path menentukan file yang tersembunyi.

-atau-

Operasi ini tidak didukung pada platform saat ini.

-atau-

path menentukan direktori.

-atau-

Pemanggil tidak memiliki izin yang diperlukan.

path dalam format yang tidak valid.

Pemanggil tidak memiliki izin yang diperlukan.

Contoh

Contoh kode berikut menunjukkan penggunaan metode WriteAllLines untuk menulis teks ke file. Dalam contoh ini, file dibuat, jika belum ada, dan teks ditambahkan ke dalamnya.

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

Keterangan

Jika file target sudah ada, file tersebut dipotong dan ditimpa.

Mengingat array string dan jalur file, metode ini membuka file yang ditentukan, menulis array string ke file menggunakan pengodean yang ditentukan, lalu menutup file.

Berlaku untuk

WriteAllLines(String, IEnumerable<String>, Encoding)

Sumber:
File.cs
Sumber:
File.cs
Sumber:
File.cs

Membuat file baru dengan menggunakan pengodean yang ditentukan, menulis kumpulan string ke file, lalu menutup file.

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

File yang akan ditulis.

contents
IEnumerable<String>

Baris untuk menulis ke file.

encoding
Encoding

Pengodean karakter yang akan digunakan.

Pengecualian

Versi .NET Framework dan .NET Core yang lebih lama dari 2.1: path adalah string panjang nol, hanya berisi spasi kosong, atau berisi satu atau beberapa karakter yang tidak valid yang ditentukan oleh metode GetInvalidPathChars().

Baik path, contents, atau encodingnull.

path tidak valid (misalnya, ada di drive yang tidak dipetakan).

Terjadi kesalahan I/O saat membuka file.

path melebihi panjang maksimum yang ditentukan sistem.

path dalam format yang tidak valid.

Pemanggil tidak memiliki izin yang diperlukan.

path menentukan file yang bersifat baca-saja.

-atau-

path menentukan file yang tersembunyi.

-atau-

Operasi ini tidak didukung pada platform saat ini.

-atau-

path adalah direktori.

-atau-

Pemanggil tidak memiliki izin yang diperlukan.

Keterangan

Jika file target sudah ada, file tersebut dipotong dan ditimpa.

Anda dapat menggunakan metode ini untuk membuat file yang berisi yang berikut ini:

Berlaku untuk

WriteAllLines(String, IEnumerable<String>)

Sumber:
File.cs
Sumber:
File.cs
Sumber:
File.cs

Membuat file baru, menulis kumpulan string ke file, lalu menutup file.

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

File yang akan ditulis.

contents
IEnumerable<String>

Baris untuk menulis ke file.

Pengecualian

Versi .NET Framework dan .NET Core yang lebih lama dari 2.1: path adalah string panjang nol, hanya berisi spasi kosong, atau berisi satu atau beberapa karakter yang tidak valid yang ditentukan oleh metode GetInvalidPathChars().

Baik path atau contentsnull.

path tidak valid (misalnya, ada di drive yang tidak dipetakan).

Terjadi kesalahan I/O saat membuka file.

path melebihi panjang maksimum yang ditentukan sistem.

path dalam format yang tidak valid.

Pemanggil tidak memiliki izin yang diperlukan.

path menentukan file yang bersifat baca-saja.

-atau-

path menentukan file yang tersembunyi.

-atau-

Operasi ini tidak didukung pada platform saat ini.

-atau-

path adalah direktori.

-atau-

Pemanggil tidak memiliki izin yang diperlukan.

Contoh

Contoh berikut menulis baris yang dipilih dari file data sampel ke file.

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

Keterangan

Perilaku default metode WriteAllLines(String, IEnumerable<String>) adalah menulis data dengan menggunakan pengodean UTF-8 tanpa tanda urutan byte (BOM). Jika perlu menyertakan pengidentifikasi UTF-8, seperti tanda urutan byte, di awal file, gunakan metode WriteAllLines(String, IEnumerable<String>, Encoding) kelebihan beban dengan pengodean UTF8.

Jika file target sudah ada, file tersebut dipotong dan ditimpa.

Anda dapat menggunakan metode ini untuk membuat konten untuk kelas koleksi yang mengambil IEnumerable<T> di konstruktornya, seperti List<T>, HashSet<T>, atau kelas SortedSet<T>.

Berlaku untuk

WriteAllLines(String, String[])

Sumber:
File.cs
Sumber:
File.cs
Sumber:
File.cs

Membuat file baru, menulis array string yang ditentukan ke file, lalu menutup file.

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

File yang akan ditulis.

contents
String[]

Array string untuk menulis ke file.

Pengecualian

Versi .NET Framework dan .NET Core yang lebih lama dari 2.1: path adalah string panjang nol, hanya berisi spasi kosong, atau berisi satu atau beberapa karakter yang tidak valid. Anda dapat mengkueri karakter yang tidak valid dengan menggunakan metode GetInvalidPathChars().

Baik path atau contentsnull.

Jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.

Jalur yang ditentukan tidak valid (misalnya, jalur tersebut berada pada drive yang tidak dipetakan).

Terjadi kesalahan I/O saat membuka file.

path menentukan file yang bersifat baca-saja.

-atau-

path menentukan file yang tersembunyi.

-atau-

Operasi ini tidak didukung pada platform saat ini.

-atau-

path menentukan direktori.

-atau-

Pemanggil tidak memiliki izin yang diperlukan.

path dalam format yang tidak valid.

Pemanggil tidak memiliki izin yang diperlukan.

Contoh

Contoh kode berikut menunjukkan penggunaan metode WriteAllLines untuk menulis teks ke file. Dalam contoh ini, file dibuat, jika belum ada, dan teks ditambahkan ke dalamnya.

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

Keterangan

Jika file target sudah ada, file tersebut dipotong dan ditimpa.

Perilaku default metode WriteAllLines adalah menulis data menggunakan pengodean UTF-8 tanpa tanda urutan byte (BOM). Jika perlu menyertakan pengidentifikasi UTF-8, seperti tanda urutan byte, di awal file, gunakan metode WriteAllLines(String, String[], Encoding) kelebihan beban dengan pengodean UTF8.

Mengingat array string dan jalur file, metode ini membuka file yang ditentukan, menulis array string ke file, lalu menutup file.

Berlaku untuk