C#编写文本文件展示了如何在C#中编写文本文件。C#中的输入和输出操作基于流。Stream是所有流的抽象基类。C#教程是C#语言的综合教程。
C#中的输入和输出基于流。Stream
是所有流的抽象基类。流是字节序列的抽象,例如文件、输入/输出设备、进程间通信管道或TCP/IP套接字。
C#流
Stream
为输入和输出类型提供通用接口,并将程序员与操作系统和底层设备的具体细节隔离开来。例如,MemoryStream
处理内存中的数据,FileStream
处理文件中的数据。
C#使用File.WriteAllText写入文本文件
File.WriteAllText
方法创建一个新文件,将内容写入文件,然后关闭文件。如果目标文件已经存在,则将其覆盖。
var path = "data.txt"; string text = "old falcon"; File.WriteAllText(path, text); Console.WriteLine("text written");
该示例将文本写入文件。
File.WriteAllText(path, text);
File.WriteAllText
方法有两个参数:要写入的文件和要写入文件的字符串。该方法采用可选的第三个参数:编码。如果未指定,则设置为UTF8。
C#使用File.WriteAllLines写入文本
File.WriteAllLines
方法创建一个新文件,将一个或多个字符串写入该文件,然后关闭该文件。
var path = "data.txt"; string[] lines = {"old falcon", "deep forest", "golden ring"}; File.WriteAllLines(path, lines); Console.WriteLine("lines written to file");
该示例将三行写入文件。
string[] lines = {"old falcon", "deep forest", "golden ring"};
这是一个三行的字符串数组。
File.WriteAllLines(path, lines);
使用File.WriteAllLines
方法将行写入文件。
C#使用File.WriteAllBytes写入文本
File.WriteAllBytes
方法创建一个新文件,将指定的字节数组写入文件,然后关闭文件。如果目标文件已经存在,则将其覆盖。
using System.Text; var path = "data.txt"; string text = "Today is a beautiful day. We go swimming and fishing."; byte[] data = Encoding.ASCII.GetBytes(text); File.WriteAllBytes(path, data); Console.WriteLine("data written to file");
该示例使用File.WriteAllBytes
方法将文本写入文本文件。
string text = "Today is a beautiful day. We go swimming and fishing."; byte[] data = Encoding.ASCII.GetBytes(text);
首先,我们使用Encoding.ASCII.GetBytes
方法将文本转换为字节。
File.WriteAllBytes(path, data);
然后使用File.WriteAllBytes
方法将字节数组写入文件。
C#用StreamWriter的WriteLine写文本
StreamWriter的
WriteLine
方法将一个格式化的字符串和一个新行写到流中。
var path = "data.txt"; using var sw = new StreamWriter(path); sw.WriteLine("old falcon"); Console.WriteLine("data written to file");
该示例将一行写入文本文件。
using var sw = new StreamWriter(path); sw.WriteLine("old falcon");
一行被写入文本文件。我们使用using
关键字来在sw
变量超出范围时自动释放文件资源。
C#用FileStream的write写文本
FileStream的
write
方法将一个字节块写入文件流。
public override void Write(byte[] array, int offset, int count);
第一个参数是包含要写入流的数据的缓冲区。第二个参数是数组中从零开始的字节偏移量,从中开始将字节复制到流中。第三个参数是要写入的最大字节数。
using System.Text; var path = "data.txt"; using FileStream fs = File.OpenWrite(path); var data = "falcon\nhawk\nforest\ncloud\nsky"; byte[] bytes = Encoding.UTF8.GetBytes(data); fs.Write(bytes, 0, bytes.Length); Console.WriteLine("data written to file");
该示例将文本数据写入文本文件。
using FileStream fs = File.OpenWrite(path);
首先,我们使用File.OpenWrite
方法打开一个文件流。
var data = "falcon\nhawk\nforest\ncloud\nsky"; byte[] bytes = Encoding.UTF8.GetBytes(data);
然后我们使用Encoding.UTF8.GetBytes
方法将文本数据转换为字节。
fs.Write(bytes, 0, bytes.Length);
最后,我们将字节数组写入文件流。
C#异步写入文本
在前面的例子中,我们同步写入了文本数据。C#还提供等效的异步方法。
File.WriteAllTextAsync
异步创建一个新文件,将指定的字符串写入该文件,然后关闭该文件。如果目标文件已经存在,则会被覆盖。
var path = "data.txt"; string text = "an old falcon"; await File.WriteAllTextAsync(path, text); Console.WriteLine("text written");
在示例中,我们异步写入文本文件。
await File.WriteAllTextAsync(path, text);
await
运算符应用于异步方法中的任务,以暂停该方法的执行,直到等待的任务完成。
在本文中,我们使用C#以各种方式写入文本文件。
列出所有C#教程。