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) |
Membaca baris file. |
ReadLines(String, Encoding) |
Baca baris file yang memiliki pengodean tertentu. |
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 GetInvalidPathChars() metode .
path
adalah 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 ReadLines metode 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: Ketika Anda menggunakan ReadLines, Anda dapat mulai menghitung koleksi string sebelum seluruh koleksi dikembalikan; ketika 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 ReadLines metode untuk melakukan hal berikut:
Lakukan kueri LINQ ke Objek pada file untuk mendapatkan sekumpulan baris yang difilter.
Tulis kumpulan baris yang dikembalikan ke file dengan File.WriteAllLines(String, IEnumerable<String>) metode , atau tambahkan ke file yang ada dengan File.AppendAllLines(String, IEnumerable<String>) metode .
Create instans koleksi yang segera diisi yang mengambil IEnumerable<T> kumpulan string untuk konstruktornya, seperti IList<T> atau Queue<T>.
Metode ini menggunakan UTF8 untuk nilai pengodean.
Berlaku untuk
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 GetInvalidPathChars() metode .
path
adalah 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 ReadLines metode untuk melakukan hal berikut:
Lakukan kueri LINQ ke Objek pada file untuk mendapatkan sekumpulan baris yang difilter.
Tulis kumpulan baris yang dikembalikan ke file dengan File.WriteAllLines(String, IEnumerable<String>, Encoding) metode , atau tambahkan ke file yang ada dengan File.AppendAllLines(String, IEnumerable<String>, Encoding) metode .
Create instans koleksi yang segera diisi yang mengambil IEnumerable<T> kumpulan string untuk konstruktornya, seperti IList<T> atau Queue<T>.
Berlaku untuk
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk