TextReader dalam C#

WBOY
Lepaskan: 2024-09-03 15:22:54
asal
1091 orang telah melayarinya

TextReader dalam C# digunakan untuk membaca teks atau siri aksara berurutan daripada fail teks. Kelas TextReader ditemui di bawah ruang nama System.IO. Ia adalah kelas asas abstrak StreamReader dan StringReader yang digunakan untuk membaca aksara dari aliran dan rentetan masing-masing. Kami tidak boleh mencipta objek TextReader kerana ia adalah kelas abstrak. TextReader tidak berulir selamat secara lalai. Kelas yang memperoleh TextReader kelas perlu melaksanakan kaedah Peek() dan Read() secara minimum untuk membuat contoh berguna TextReader.

Sintaks:

Sintaks mencipta TextReader adalah seperti berikut:

TextReader text_reader = File.OpenText(file_path);
Salin selepas log masuk
Salin selepas log masuk

Pernyataan di atas akan membuka fail di lokasi yang ditentukan oleh 'file_path'. Kemudian, dengan bantuan text_reader, kami boleh menggunakan kaedah kelas TextReader untuk membaca kandungan daripada fail.

Kami juga boleh membuat TextReader dengan bantuan blok 'menggunakan' seperti yang ditunjukkan di bawah:

using(TextReader text_reader = File.OpenText(file_path))
{
//user code
}
Salin selepas log masuk

Kelebihan bekerja dengan blok 'menggunakan' ialah ia melepaskan memori yang diperoleh oleh objek yang dinyatakan di dalamnya selepas kerja objek selesai dan objek tidak lagi diperlukan.

Bagaimana TextReader Berfungsi dalam C#?

Untuk bekerja dengan TextReader, adalah perlu untuk mengimport ruang nama System.IO dalam kod kami. Oleh kerana TextReader ialah kelas abstrak, kami tidak boleh mencipta contohnya secara langsung menggunakan kata kunci 'baru' tetapi kami boleh menggunakan kaedah OpenText() kelas Fail untuk mencapai perkara yang sama, seperti yang ditunjukkan di bawah:

TextReader text_reader = File.OpenText(file_path);
Salin selepas log masuk
Salin selepas log masuk

Kaedah OpenText() mengambil lokasi fail sebagai input dan kemudian ia membuka fail teks berkod UTF-8 sedia ada di lokasi yang sama untuk membaca.

Kaedah File.OpenText() mengembalikan objek kelas StreamReader yang merupakan kelas terbitan TextReader dan dengan itu membantu dalam mencipta contoh berguna kelas TextReader dalam kod. Contoh ini boleh digunakan untuk memanggil kaedah kelas TextReader untuk membaca kandungan daripada fail. Kelas TextReader diperoleh daripada kelas abstrak MarshalByRefObject. Hierarki warisannya ditunjukkan di bawah:

Objek → MarshalByRefObject → TextReader

Kami boleh bekerja dengan TextReader dengan bantuan dua kelas terbitannya iaitu StreamReader dan StringReader.

  • StreamReader: Ia digunakan untuk membaca aksara daripada strim bait dalam pengekodan tertentu.
  • StringReader: Ia digunakan untuk membaca teks daripada rentetan.

Sila cari beberapa kaedah penting TextReader dalam jadual berikut:

Method Description
Close() It is used to close the TextReader and to release any system resources associated with it.
Dispose() It is used to release all the resources used by an object of TextReader.
Peek() It is used to read the next character without changing the state of the reader and it returns the next available character without actually reading it from the reader.
Read() It is used to read the next character from the text reader and it also advances the character position by one character.
ReadLine() It is used to read a line of characters from the text reader and it also returns the data as a string.
ReadToEnd() It is used to read all characters from the current position to the end of the text reader and it returns them as one string.
Kaedah
Penerangan
Tutup() Ia digunakan untuk menutup TextReader dan untuk melepaskan sebarang sumber sistem yang berkaitan dengannya.
Buang() Ia digunakan untuk melepaskan semua sumber yang digunakan oleh objek TextReader.
Peek() Ia digunakan untuk membaca aksara seterusnya tanpa mengubah keadaan pembaca dan ia mengembalikan aksara seterusnya yang tersedia tanpa benar-benar membacanya daripada pembaca.
Baca() Ia digunakan untuk membaca aksara seterusnya daripada pembaca teks dan ia juga memajukan kedudukan aksara dengan satu aksara.
ReadLine() Ia digunakan untuk membaca baris aksara daripada pembaca teks dan ia juga mengembalikan data sebagai rentetan.
ReadToEnd() Ia digunakan untuk membaca semua aksara dari kedudukan semasa ke penghujung pembaca teks dan ia mengembalikannya sebagai satu rentetan.

Examples of TextReader in C#

We can pass a text file name in a TextReader constructor to create an object. Following are the different examples of TextReader in C#.

Example #1

Reading a line of a file using the ReadLine() method of TextReader.

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApp3
{
public class Program
{
public static void Main()
{
string file = @"E:\Content\TextReader.txt";
try
{
if (File.Exists(file))
{
// opening the text file and reading a line
using (TextReader textReader = File.OpenText(file))
{
Console.WriteLine(textReader.ReadLine());
}
}
else
{
Console.WriteLine("File does not exist!");
}
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
Salin selepas log masuk

Output:

TextReader dalam C#

Example #2

Reading five characters from a file using the ReadBlock() method of TextReader.

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApp3
{
public class Program
{
public static void Main()
{
string file = @"E:\Content\TextReader.txt";
try
{
if (File.Exists(file))
{
//Opening the text file and reading 5 characters
using (TextReader textReader = File.OpenText(file))
{
char[] ch = new char[5];
textReader.ReadBlock(ch, 0, 5);
Console.WriteLine(ch);
}
}
else
{
Console.WriteLine("File does not exist!");
}
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
Salin selepas log masuk

Output:

TextReader dalam C#

Example #3

Reading the whole content of a text file using the ReadToEnd() method of TextReader.

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApp3
{
public class Program
{
public static void Main()
{
string file = @"E:\Content\TextReader.txt";
string content = String.Empty;
try
{
if (File.Exists(file))
{
//Opening a text file and reading the whole content
using (TextReader tr = File.OpenText(file))
{
content = tr.ReadToEnd();
Console.WriteLine(content);
}
}
else
{
Console.WriteLine("File does not exist!");
}
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
Salin selepas log masuk

Output:

TextReader dalam C#

Example #4

Reading the content of a text file using TextReader and writing it to another file.

Code:

using System;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApp3
{
public class Program
{
public static void Main()
{
string fileToRead = @"E:\Content\TextReader.txt";
string fileToWrite = @"E:\Content\TextReaderAndWriter.txt";
StringBuilder content = new StringBuilder();
string str = String.Empty;
try
{
//checking if the file exists to read
if (File.Exists(fileToRead))
{
//Opening a text file and reading the whole content
using (TextReader textReader = File.OpenText(fileToRead))
{
while ((str = textReader.ReadLine()) != null)
{
content.Append("\n" + str);
}
}
}
else
{
Console.WriteLine("File does not exist!");
}
//checking if the file to write content already exists
if (File.Exists(fileToWrite))
{
File.Delete(fileToWrite);
}
//creating file if it does not exist
using (TextWriter textWriter = File.CreateText(fileToWrite))
{
textWriter.WriteLine(content);
}
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
Salin selepas log masuk

Output:

TextReader dalam C#

Conclusion

  • TextReader is an abstract class that is used to read text or sequential series of characters from a text file.
  • StreamReader and StringReader are two derived classes of TextReader with the help of which we can implement the methods of TextReader to read content from the text files.

Atas ialah kandungan terperinci TextReader dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan