Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

File.ReadAllLines Method

Definition

Namespace:
System.IO
Assemblies:
mscorlib.dll, System.IO.FileSystem.dll
Assemblies:
netstandard.dll, System.Runtime.dll
Assemblies:
netstandard.dll, System.IO.FileSystem.dll
Assemblies:
netstandard.dll, System.IO.FileSystem.dll, System.Runtime.dll
Assembly:
System.IO.FileSystem.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Opens a text file, reads all lines of the file into a string array, and then closes the file.

Overloads

Name Description
ReadAllLines(String)

Opens a text file, reads all lines of the file, and then closes the file.

ReadAllLines(String, Encoding)

Opens a file, reads all lines of the file with the specified encoding, and then closes the file.

ReadAllLines(String)

Source:
File.cs
Source:
File.cs
Source:
File.cs
Source:
File.cs
Source:
File.cs

Opens a text file, reads all lines of the file, and then closes the file.

public:
 static cli::array <System::String ^> ^ ReadAllLines(System::String ^ path);
public static string[] ReadAllLines(string path);
static member ReadAllLines : string -> string[]
Public Shared Function ReadAllLines (path As String) As String()

Parameters

path
String

The file to open for reading.

Returns

String[]

A string array containing all lines of the file.

Exceptions

.NET Framework and .NET Core versions older than 2.1: path is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the GetInvalidPathChars() method.

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

An I/O error occurred while opening the file.

This operation is not supported on the current platform.

-or-

path specified a directory.

-or-

The caller does not have the required permission.

The file specified in path was not found.

path is in an invalid format.

The caller does not have the required permission.

Examples

The following code example demonstrates the use of the ReadAllLines method to display the contents of 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);
 }
 }
}
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

Remarks

This method opens a file, reads each line of the file, then adds each line as an element of a string array. It then closes the file. A line is defined as a sequence of characters followed by a carriage return ('\r'), a line feed ('\n'), or a carriage return immediately followed by a line feed. The resulting string does not contain the terminating carriage return and/or line feed.

If the file ends with a newline sequence, no additional empty line is appended to the array. For example, a file containing "line1\nline2\n" produces the same two-element array (["line1", "line2"]) as a file containing "line1\nline2".

This method attempts to automatically detect the encoding of a file based on the presence of byte order marks. Encoding formats UTF-8 and UTF-32 (both big-endian and little-endian) can be detected.

See also

Applies to

ReadAllLines(String, Encoding)

Source:
File.cs
Source:
File.cs
Source:
File.cs
Source:
File.cs
Source:
File.cs

Opens a file, reads all lines of the file with the specified encoding, and then closes the file.

public:
 static cli::array <System::String ^> ^ ReadAllLines(System::String ^ path, System::Text::Encoding ^ encoding);
public static string[] ReadAllLines(string path, System.Text.Encoding encoding);
static member ReadAllLines : string * System.Text.Encoding -> string[]
Public Shared Function ReadAllLines (path As String, encoding As Encoding) As String()

Parameters

path
String

The file to open for reading.

encoding
Encoding

The encoding applied to the contents of the file.

Returns

String[]

A string array containing all lines of the file.

Exceptions

.NET Framework and .NET Core versions older than 2.1: path is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the GetInvalidPathChars() method.

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

An I/O error occurred while opening the file.

This operation is not supported on the current platform.

-or-

path specified a directory.

-or-

The caller does not have the required permission.

The file specified in path was not found.

path is in an invalid format.

The caller does not have the required permission.

Examples

The following code example demonstrates the use of the ReadAllLines method to display the contents of 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);
 }
 }
}
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

Remarks

This method opens a file, reads each line of the file, and then adds each line as an element of a string array. It then closes the file. A line is defined as a sequence of characters followed by a carriage return ('\r'), a line feed ('\n'), or a carriage return immediately followed by a line feed. The resulting string does not contain the terminating carriage return and/or line feed.

If the file ends with a newline sequence, no additional empty line is appended to the array. For example, a file containing "line1\nline2\n" produces the same two-element array (["line1", "line2"]) as a file containing "line1\nline2".

This method attempts to automatically detect the encoding of a file based on the presence of byte order marks. Encoding formats UTF-8 and UTF-32 (both big-endian and little-endian) can be detected.

See also

Applies to


Feedback

Was this page helpful?