File.ReadLines Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
null
.
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:
Lakukan LINQ ke Objek kueri pada file untuk mendapatkan sekumpulan baris yang difilter.
Tulis kumpulan baris yang dikembalikan ke file dengan metode File.WriteAllLines(String, IEnumerable<String>, Encoding), atau tambahkan ke file yang ada dengan metode File.AppendAllLines(String, IEnumerable<String>, Encoding).
Buat instans koleksi yang segera diisi yang mengambil kumpulan string IEnumerable<T> untuk konstruktornya, seperti IList<T> atau Queue<T>.
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
null
.
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:
Lakukan LINQ ke Objek kueri pada file untuk mendapatkan sekumpulan baris yang difilter.
Tulis kumpulan baris yang dikembalikan ke file dengan metode File.WriteAllLines(String, IEnumerable<String>), atau tambahkan ke file yang ada dengan metode File.AppendAllLines(String, IEnumerable<String>).
Buat instans koleksi yang segera diisi yang mengambil kumpulan string IEnumerable<T> untuk konstruktornya, seperti IList<T> atau Queue<T>.
Metode ini menggunakan UTF8 untuk nilai pengodean.