File.WriteAllLines メソッド

定義

新しいファイルを作成し、1 つ以上の文字列をそのファイルに書き込んでから、そのファイルを閉じます。Creates a new file, writes one or more strings to the file, and then closes the file.

オーバーロード

WriteAllLines(String, String[], Encoding)

新しいファイルを作成し、指定されたエンコーディングで指定された文字列配列をそのファイルに書き込んでから、そのファイルを閉じます。Creates a new file, writes the specified string array to the file by using the specified encoding, and then closes the file.

WriteAllLines(String, IEnumerable<String>, Encoding)

指定されたエンコーディングを使用して新しいファイルを作成し、文字列のコレクションをそのファイルに書き込んでから、そのファイルを閉じます。Creates a new file by using the specified encoding, writes a collection of strings to the file, and then closes the file.

WriteAllLines(String, String[])

新しいファイルを作成し、指定した文字列配列をそのファイルに書き込んだ後、ファイルを閉じます。Creates a new file, write the specified string array to the file, and then closes the file.

WriteAllLines(String, IEnumerable<String>)

新しいファイルを作成し、文字列のコレクションをそのファイルに書き込んでから、そのファイルを閉じます。Creates a new file, writes a collection of strings to the file, and then closes the file.

WriteAllLines(String, String[], Encoding)

新しいファイルを作成し、指定されたエンコーディングで指定された文字列配列をそのファイルに書き込んでから、そのファイルを閉じます。Creates a new file, writes the specified string array to the file by using the specified encoding, and then closes the 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)

パラメーター

path
String

書き込み先のファイル。The file to write to.

contents
String[]

ファイルに書き込む文字列配列。The string array to write to the file.

encoding
Encoding

文字列配列に適用された文字エンコーディングを表す Encoding オブジェクト。An Encoding object that represents the character encoding applied to the string array.

例外

path は長さ 0 の文字列であるか、空白のみで構成されるか、または InvalidPathChars で定義される 1 つ以上の使用できない文字を含んでいます。path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.

path または contents のいずれかが null です。Either path or contents is null.

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。The specified path, file name, or both exceed the system-defined maximum length.

指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。The specified path is invalid (for example, it is on an unmapped drive).

ファイルを開くときに、I/O エラーが発生しました。An I/O error occurred while opening the file.

path が読み取り専用のファイルを指定しました。path specified a file that is read-only.

- または --or- path によって、非表示のファイルが指定されました。path specified a file that is hidden.

- または --or- この操作は、現在のプラットフォームではサポートされていません。This operation is not supported on the current platform.

- または --or- path がディレクトリを指定しました。path specified a directory.

- または --or- 呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

path の形式が正しくありません。path is in an invalid format.

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

次のコード例は、メソッドを使用して WriteAllLines ファイルにテキストを書き込む方法を示しています。The following code example demonstrates the use of the WriteAllLines method to write text to a file. この例では、ファイルがまだ存在していない場合は作成され、テキストが追加されます。In this example a file is created, if it doesn't already exist, and text is added to it.

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

注釈

既存のターゲット ファイルは上書きされます。If the target file already exists, it is overwritten.

文字列の配列とファイルパスが指定されている場合、このメソッドは指定されたファイルを開き、指定されたエンコーディングを使用して文字列の配列をファイルに書き込んだ後、ファイルを閉じます。Given a string array and a file path, this method opens the specified file, writes the string array to the file using the specified encoding, and then closes the file.

適用対象

WriteAllLines(String, IEnumerable<String>, Encoding)

指定されたエンコーディングを使用して新しいファイルを作成し、文字列のコレクションをそのファイルに書き込んでから、そのファイルを閉じます。Creates a new file by using the specified encoding, writes a collection of strings to the file, and then closes the 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)

パラメーター

path
String

書き込み先のファイル。The file to write to.

contents
IEnumerable<String>

ファイルに書き込む行。The lines to write to the file.

encoding
Encoding

使用する文字エンコーディング。The character encoding to use.

例外

path は長さゼロの文字列で、空白のみを含んでいるか、または GetInvalidPathChars() メソッドで定義されている 1 つ以上の無効な文字を含んでいます。path is a zero-length string, contains only white space, or contains one or more invalid characters defined by the GetInvalidPathChars() method.

pathcontents、または encodingnull です。Either path, contents, or encoding is null.

path が有効ではありません (たとえば、マップされていないドライブにあるなど)。path is invalid (for example, it is on an unmapped drive).

ファイルを開くときに、I/O エラーが発生しました。An I/O error occurred while opening the file.

path がシステムで定義されている最大長を超えています。path exceeds the system-defined maximum length.

path の形式が正しくありません。path is in an invalid format.

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

path が読み取り専用のファイルを指定しました。path specified a file that is read-only.

- または --or- path によって、非表示のファイルが指定されました。path specified a file that is hidden.

- または --or- この操作は、現在のプラットフォームではサポートされていません。This operation is not supported on the current platform.

- または --or- path はディレクトリです。path is a directory.

- または --or- 呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

注釈

既存のターゲット ファイルは上書きされます。If the target file already exists, it is overwritten.

このメソッドを使用すると、次のものを含むファイルを作成できます。You can use this method to create a file that contains the following:

適用対象

WriteAllLines(String, String[])

新しいファイルを作成し、指定した文字列配列をそのファイルに書き込んだ後、ファイルを閉じます。Creates a new file, write the specified string array to the file, and then closes the 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())

パラメーター

path
String

書き込み先のファイル。The file to write to.

contents
String[]

ファイルに書き込む文字列配列。The string array to write to the file.

例外

path は長さ 0 の文字列であるか、空白のみで構成されるか、または InvalidPathChars で定義される 1 つ以上の使用できない文字を含んでいます。path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.

path または contents のいずれかが null です。Either path or contents is null.

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。The specified path, file name, or both exceed the system-defined maximum length.

指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。The specified path is invalid (for example, it is on an unmapped drive).

ファイルを開くときに、I/O エラーが発生しました。An I/O error occurred while opening the file.

path が読み取り専用のファイルを指定しました。path specified a file that is read-only.

- または --or- path によって、非表示のファイルが指定されました。path specified a file that is hidden.

- または --or- この操作は、現在のプラットフォームではサポートされていません。This operation is not supported on the current platform.

- または --or- path がディレクトリを指定しました。path specified a directory.

- または --or- 呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

path の形式が正しくありません。path is in an invalid format.

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

次のコード例は、メソッドを使用して WriteAllLines ファイルにテキストを書き込む方法を示しています。The following code example demonstrates the use of the WriteAllLines method to write text to a file. この例では、ファイルがまだ存在していない場合は作成され、テキストが追加されます。In this example a file is created, if it doesn't already exist, and text is added to it.

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

注釈

既存のターゲット ファイルは上書きされます。If the target file already exists, it is overwritten.

メソッドの既定の動作で WriteAllLines は、バイトオーダーマーク (BOM) なしで utf-8 エンコーディングを使用してデータを書き出します。The default behavior of the WriteAllLines method is to write out data using UTF-8 encoding without a byte order mark (BOM). ファイルの先頭に UTF-8 識別子 (バイトオーダーマークなど) を含める必要がある場合は、 WriteAllLines(String, String[], Encoding) エンコードでメソッドオーバーロードを使用し UTF8 ます。If it is necessary to include a UTF-8 identifier, such as a byte order mark, at the beginning of a file, use the WriteAllLines(String, String[], Encoding) method overload with UTF8 encoding.

文字列の配列とファイルパスが指定されている場合、このメソッドは指定されたファイルを開き、文字列の配列をファイルに書き込んだ後、ファイルを閉じます。Given a string array and a file path, this method opens the specified file, writes the string array to the file, and then closes the file.

適用対象

WriteAllLines(String, IEnumerable<String>)

新しいファイルを作成し、文字列のコレクションをそのファイルに書き込んでから、そのファイルを閉じます。Creates a new file, writes a collection of strings to the file, and then closes the 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))

パラメーター

path
String

書き込み先のファイル。The file to write to.

contents
IEnumerable<String>

ファイルに書き込む行。The lines to write to the file.

例外

path は長さゼロの文字列で、空白のみを含んでいるか、または GetInvalidPathChars() メソッドで定義されている 1 つ以上の無効な文字を含んでいます。path is a zero-length string, contains only white space, or contains one or more invalid characters defined by the GetInvalidPathChars() method.

path または contents のいずれかが null です。Either path or contents is null.

path が有効ではありません (たとえば、マップされていないドライブにあるなど)。path is invalid (for example, it is on an unmapped drive).

ファイルを開くときに、I/O エラーが発生しました。An I/O error occurred while opening the file.

path がシステムで定義されている最大長を超えています。path exceeds the system-defined maximum length.

path の形式が正しくありません。path is in an invalid format.

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

path が読み取り専用のファイルを指定しました。path specified a file that is read-only.

- または --or- path によって、非表示のファイルが指定されました。path specified a file that is hidden.

- または --or- この操作は、現在のプラットフォームではサポートされていません。This operation is not supported on the current platform.

- または --or- path はディレクトリです。path is a directory.

- または --or- 呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

次の例では、選択した行をサンプルデータファイルからファイルに書き込みます。The following example writes selected lines from a sample data file to a 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());
            }
        }
    }
}
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

注釈

メソッドの既定の動作で WriteAllLines(String, IEnumerable<String>) は、バイトオーダーマーク (BOM) なしで utf-8 エンコーディングを使用してデータを書き出すことができます。The default behavior of the WriteAllLines(String, IEnumerable<String>) method is to write out data by using UTF-8 encoding without a byte order mark (BOM). ファイルの先頭に UTF-8 識別子 (バイトオーダーマークなど) を含める必要がある場合は、 WriteAllLines(String, IEnumerable<String>, Encoding) エンコードでメソッドオーバーロードを使用し UTF8 ます。If it is necessary to include a UTF-8 identifier, such as a byte order mark, at the beginning of a file, use the WriteAllLines(String, IEnumerable<String>, Encoding) method overload with UTF8 encoding.

既存のターゲット ファイルは上書きされます。If the target file already exists, it is overwritten.

このメソッドを使用すると、 IEnumerable<T> List<T>HashSet<T> 、またはクラスなど、コンストラクターでを受け取るコレクションクラスのコンテンツを作成でき SortedSet<T> ます。You can use this method to create the contents for a collection class that takes an IEnumerable<T> in its constructor, such as a List<T>, HashSet<T>, or a SortedSet<T> class.

適用対象