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.
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:
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. |
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:
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 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!