Rumah  >  Artikel  >  pembangunan bahagian belakang  >  TextWriter dalam C#

TextWriter dalam C#

PHPz
PHPzasal
2024-09-03 15:22:45188semak imbas

TextWriter digunakan untuk menulis teks ke dalam fail. Berikut adalah beberapa perkara penting mengenai TextWriter dalam C#, TextWriter ialah kelas abstrak di bawah ruang nama IO. Ia digunakan untuk menulis siri aksara berurutan ke dalam fail. Ia ialah kelas asas StreamWriter dan StringWriter yang digunakan untuk menulis aksara pada strim dan rentetan masing-masing.

Secara lalai, ia tidak selamat untuk benang. Oleh kerana ia adalah kelas abstrak, objeknya tidak boleh dibuat. Mana-mana kelas yang melaksanakan TextWriter mesti melaksanakan kaedah Write(Char) secara minimum untuk mencipta contoh bergunanya.

Sintaks dengan penjelasan

TextWriter text_writer = File.CreateText(file_path);

Pernyataan di atas mencipta fail baharu jika ia tidak wujud di lokasi yang ditentukan (laluan_fail). Kemudian, kita boleh menggunakan text_writer untuk memanggil kaedah kelas TextWriter dan boleh berfungsi dengan mudah dengan fail dalam C#.

Kita boleh mencipta TextWriter dengan menggunakan pernyataan, seperti:

using(TextWriter text_writer = File.CreateText(file_path))
{
//user code
}

Adalah lebih baik menggunakan TextWriter dengan menggunakan pernyataan kerana ia memberitahu .NET untuk melepaskan objek yang dinyatakan dalam blok penggunaan sebaik sahaja kerjanya selesai dan ia tidak lagi diperlukan.

Bagaimana TextWriter berfungsi dalam C#?

Untuk bekerja dengan TextWriter, pertama, kita perlu mengimport ruang nama System.IO. Sekarang, kita tidak boleh terus membuat contoh TextWriter menggunakan kata kunci 'baharu' kerana ia adalah kelas abstrak. Oleh itu, untuk mencipta contoh kami menggunakan kaedah CreateText() kelas Fail, seperti:

TextWriter text_writer = File.CreateText(file_path);

Kaedah ini mengambil laluan fail untuk dibuka untuk menulis. Ia mencipta atau membuka fail untuk menulis teks yang dikodkan UTF-8. Jika fail itu sudah wujud, kandungannya akan ditimpa.

Ia mengembalikan objek StreamWriter, iaitu kelas terbitan TextWriter dan dengan itu membantu kami mencipta contoh kelas TextWriter. Sekarang, dengan bantuan contoh ini, kita boleh memanggil kaedah TextWriter untuk menulis teks ke dalam fail.

TextWriter ialah kelas terbitan kelas abstrak MarshalByRefObject. Hierarki warisannya adalah seperti berikut:

Objek ——–> MarshalByRefObject ——–> Penulis Teks

Seperti StreamWriter terdapat kelas lain yang berasal dari kelas TextWriter dan menyediakan pelaksanaan untuk ahli TextWriter. Sila cari di bawah senarai kelas terbitan tersebut dengan bantuan yang boleh kami gunakan dengan TextWriter:

  • IndentedTextWriter: Ia digunakan untuk memasukkan rentetan tab dan untuk menjejaki tahap lekukan semasa.
  • StreamWriter: Ia digunakan untuk menulis aksara pada strim dalam pengekodan tertentu.
  • StringWriter: Ia digunakan untuk menulis maklumat pada rentetan. Maklumat itu disimpan dalam StringBuilder asas.
  • HttpWriter: Ia menyediakan objek kelas TextWriter yang boleh diakses melalui objek HttpResponse intrinsik.
  • HtmlTextWriter: Ia digunakan untuk menulis mark up aksara dan teks ke strim output kawalan pelayan ASP.NET.

Mari kita bincangkan beberapa kaedah penting TextWriter, seperti:

Method Description
Close() It is used to close the current writer and it releases any system resources associated with that writer.
Dispose() It is used to release all the resources used by the TextWriter object.
Flush() It is used to clear all buffers for the current writer and causes any buffered data to be written to the underlying device.
Synchronized(TextWriter) It is used to create a thread-safe wrapper around the specified TextWriter.
Write(Char) It is used to write a character to the text stream.
Write(String) It is used to write the string to the text stream.
WriteAsync(Char) It is used to write the character to the text stream asynchronously.
WriteLine() It is used to write line terminator to the text stream.
WriteLineAsync(String) It is used to write the string to the text stream asynchronously followed by a line terminator.
Kaedah Penerangan Tutup() Ia digunakan untuk menutup penulis semasa dan ia mengeluarkan sebarang sumber sistem yang dikaitkan dengan penulis itu. Buang() Ia digunakan untuk melepaskan semua sumber yang digunakan oleh objek TextWriter. Siram() Ia digunakan untuk mengosongkan semua penimbal untuk penulis semasa dan menyebabkan sebarang data penimbal ditulis ke peranti asas. Disegerakkan(TextWriter) Ia digunakan untuk membuat pembalut selamat benang di sekeliling TextWriter yang ditentukan. Tulis(Char) Ia digunakan untuk menulis aksara ke strim teks. Tulis(String) Ia digunakan untuk menulis rentetan pada strim teks. WriteAsync(Char) Ia digunakan untuk menulis aksara ke strim teks secara tidak segerak. WriteLine() Ia digunakan untuk menulis penamat baris ke strim teks. WriteLineAsync(String) Ia digunakan untuk menulis rentetan pada aliran teks secara tidak segerak diikuti dengan penamat baris.

Example

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApp2
{
class Program
{
public static void Main()
{
string file = @"E:\Content\textWriter.txt";
// check if the file exists
try
{
if (File.Exists(file))
{
File.Delete(file);
}
// create the file
using (TextWriter writer = File.CreateText(file))
{
writer.WriteLine("TextWriter is an abstract class under " +
"System.IO namespace. It is used to write sequential " +
"series of characters into a file. It is the base class " +
"of StreamWriter and StringWriter which is used to " +
"write characters to streams and strings respectively. " +
"By default, it is not thread safe. " +
"As it is an abstract class, its object cannot be created. " +
"Any class implementing TextWriter must minimally implement " +
"its Write(Char) method to create its useful instance. ");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}

Output:

TextWriter dalam C#

We can asynchronously write characters to stream by using WriteAsync(Char) method such as:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApp2
{
public class Program
{
public static void Main(string[] args)
{
WriteCharAsync();
}
public static async void WriteCharAsync()
{
string file = @"E:\Content\textWriterAsync.txt";
try
{
//check if file already exists
if (File.Exists(file))
{
File.Delete(file);
}
using (StreamWriter writer = File.CreateText(file))
{
await writer.WriteLineAsync("TextWriter is an abstract class under "+
"System.IO namespace. It is used to write sequential " +
"series of characters into a file. It is the base class " +
"of StreamWriter and StringWriter which is used to " +
"write characters to streams and strings respectively. " +
"By default, it is not thread safe. " +
"As it is an abstract class, its object cannot be created. " +
"Any class implementing TextWriter must minimally implement " +
"its Write(Char) method to create its useful instance. ");
await writer.WriteLineAsync("We are writing characters " +
"asynchronously.");
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}

Output:

TextWriter dalam C#

Conclusion

TextWriter is used to write text or sequential series of characters to a file. A class derived from the TextWriter class needs to provide implementation to any of the members of the TextWriter. Write() methods of TextWriter with primitive data types as parameters write out values as strings.

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

Kenyataan:
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
Artikel sebelumnya:C# BinaryReaderArtikel seterusnya:C# BinaryReader