Bagikan melalui


File.ReadLines Metode

Definisi

Membaca baris file.

Overload

ReadLines(String, Encoding)

Baca baris file yang memiliki pengodean tertentu.

ReadLines(String)

Membaca baris file.

ReadLines(String, Encoding)

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

Baca baris file yang memiliki pengodean tertentu.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ ReadLines(System::String ^ path, System::Text::Encoding ^ encoding);
public static System.Collections.Generic.IEnumerable<string> ReadLines (string path, System.Text.Encoding encoding);
static member ReadLines : string * System.Text.Encoding -> seq<string>
Public Shared Function ReadLines (path As String, encoding As Encoding) As IEnumerable(Of String)

Parameter

path
String

File yang akan dibaca.

encoding
Encoding

Pengodean yang diterapkan ke konten file.

Mengembalikan

Semua baris file, atau baris yang merupakan hasil kueri.

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 seperti yang didefinisikan oleh metode GetInvalidPathChars().

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

File yang ditentukan oleh path tidak ditemukan.

Terjadi kesalahan I/O saat membuka file.

path melebihi panjang maksimum yang ditentukan sistem.

Pemanggil tidak memiliki izin yang diperlukan.

path menentukan file yang bersifat baca-saja.

-atau-

Operasi ini tidak didukung pada platform saat ini.

-atau-

path adalah direktori.

-atau-

Pemanggil tidak memiliki izin yang diperlukan.

Keterangan

Gunakan metode ini untuk menentukan pengodean untuk menggunakan baca file.

Metode ReadLines dan ReadAllLines berbeda sebagai berikut: Saat Anda menggunakan ReadLines, Anda dapat mulai menghitung koleksi string sebelum seluruh koleksi dikembalikan. Saat Anda menggunakan ReadAllLines, Anda harus menunggu seluruh array string dikembalikan sebelum Anda dapat mengakses array. Oleh karena itu, ketika Anda bekerja dengan file yang sangat besar, ReadLines bisa lebih efisien.

Anda dapat menggunakan metode ReadLines untuk melakukan hal berikut:

Berlaku untuk

ReadLines(String)

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

Membaca baris file.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ ReadLines(System::String ^ path);
public static System.Collections.Generic.IEnumerable<string> ReadLines (string path);
static member ReadLines : string -> seq<string>
Public Shared Function ReadLines (path As String) As IEnumerable(Of String)

Parameter

path
String

File yang akan dibaca.

Mengembalikan

Semua baris file, atau baris yang merupakan hasil kueri.

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

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

File yang ditentukan oleh path tidak ditemukan.

Terjadi kesalahan I/O saat membuka file.

path melebihi panjang maksimum yang ditentukan sistem.

Pemanggil tidak memiliki izin yang diperlukan.

path menentukan file yang bersifat baca-saja.

-atau-

Operasi ini tidak didukung pada platform saat ini.

-atau-

path adalah direktori.

-atau-

Pemanggil tidak memiliki izin yang diperlukan.

Contoh

Contoh berikut membaca baris file untuk menemukan baris yang berisi string tertentu.

foreach (string line in File.ReadLines(@"d:\data\episodes.txt"))
{
    if (line.Contains("episode") & line.Contains("2006"))
    {
        Console.WriteLine(line);
    }
}
for line in File.ReadLines @"d:\data\episodes.txt" do
    if line.Contains "episode" && line.Contains "2006" then
        printfn $"{line}"
For Each line As String In File.ReadLines("d:\data\episodes.txt")
    If line.Contains("episode") And line.Contains("2006") Then
        Console.WriteLine(line)
    End If
Next line

Contoh berikut menggunakan metode ReadLines dalam kueri LINQ yang menghitung semua direktori untuk file yang memiliki ekstensi .txt, membaca setiap baris file, dan menampilkan baris jika berisi string "Microsoft".

using System;
using System.IO;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // Set a variable to the My Documents path.
            string docPath =
            Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

            var files = from file in Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(file)
                        where line.Contains("Microsoft")
                        select new
                        {
                            File = file,
                            Line = line
                        };

            foreach (var f in files)
            {
                Console.WriteLine($"{f.File}\t{f.Line}");
            }
            Console.WriteLine($"{files.Count().ToString()} files found.");
        }
        catch (UnauthorizedAccessException uAEx)
        {
            Console.WriteLine(uAEx.Message);
        }
        catch (PathTooLongException pathEx)
        {
            Console.WriteLine(pathEx.Message);
        }
    }
}
open System
open System.IO

try
    // Set a variable to the My Documents path.
    let docPath =
        Environment.GetFolderPath Environment.SpecialFolder.MyDocuments

    let files =
        query {
            for file in Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories) do
            for line in File.ReadLines file do
            where (line.Contains "Microsoft")
            select {| File = file; Line = line |}
        }

    for f in files do
        printfn $"{f.File}\t{f.Line}"
    printfn $"{Seq.length files} files found."

with
| :? UnauthorizedAccessException as uAEx -> printfn $"{uAEx.Message}"
| :? PathTooLongException as pathEx -> printfn $"{pathEx.Message}"
Imports System.IO
Imports System.Xml.Linq

Module Module1

    Sub Main()
        Try
            Dim docPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
            Dim files = From chkFile In Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
                        From line In File.ReadLines(chkFile)
                        Where line.Contains("Microsoft")
                        Select New With {.curFile = chkFile, .curLine = line}

            For Each f In files
                Console.WriteLine($"{f.File}\t{f.Line}")
            Next
            Console.WriteLine($"{files.Count} files found.")
        Catch uAEx As UnauthorizedAccessException
            Console.WriteLine(uAEx.Message)
        Catch pathEx As PathTooLongException
            Console.WriteLine(pathEx.Message)
        End Try
    End Sub
End Module

Keterangan

Metode ReadLines dan ReadAllLines berbeda sebagai berikut: Saat Anda menggunakan ReadLines, Anda dapat mulai menghitung koleksi string sebelum seluruh koleksi dikembalikan; saat Anda menggunakan ReadAllLines, Anda harus menunggu seluruh array string dikembalikan sebelum Anda dapat mengakses array. Oleh karena itu, ketika Anda bekerja dengan file yang sangat besar, ReadLines bisa lebih efisien.

Anda dapat menggunakan metode ReadLines untuk melakukan hal berikut:

Metode ini menggunakan UTF8 untuk nilai pengodean.

Berlaku untuk