ZetCode

C# StreamWriter

最后修改于 2023 年 7 月 5 日

C# StreamWriter 教程展示了如何使用 StreamWriter 在 C# 中写入文本文件。 C# 教程 是一个关于 C# 语言的综合教程。

C# 中的输入和输出是基于流的。 Stream 是所有流的抽象基类。 流是字节序列的抽象,例如文件、输入/输出设备、进程间通信管道或 TCP/IP 套接字。

C# StreamWriter

StreamWriter 以特定的编码将字符写入流。 除非另有说明,否则 StreamWriter 默认为 UTF-8 编码。

C# StreamWriter 示例

WriteLine 方法向流写入新行。 WriteLine 有几个重载方法。

Program.cs
var path = "data.txt";

using var sw = new StreamWriter(path);
sw.WriteLine("old falcon");
sw.WriteLine("stormy night");

Console.WriteLine("data written to file");

该示例将两行写入 data.txt 文件。

using var sw = new StreamWriter(path);

创建了一个 StreamWriterusing 关键字在 Main 方法结束时关闭打开的文件。

sw.WriteLine("old falcon");
sw.WriteLine("stormy night");

两行被写入流。

$ dotnet run
data written to file
$ cat data.txt 
old falcon
stormy night

C# StreamWriter 写入格式化字符串

我们可以使用 WriteLine 写入格式化字符串,类似于 string.Format

访问 C# 字符串格式教程,了解更多关于 C# 中字符串格式化的信息。

Program.cs
using FileStream fs = File.Create("data.txt");
using var sw = new StreamWriter(fs);

int n = 3;
string word = "hawks";
sw.WriteLine("There are {0} {1} in the sky", n, word);

Console.WriteLine("data written to file");

该示例将格式化行写入文件。

using FileStream fs = File.Create("data.txt");

使用 File.Create 创建一个 FileStream

using var sw = new StreamWriter(fs);

通过将 FileStream 传递给 StreamWriter 的构造函数来生成 StreamWriter

int n = 3;
string word = "hawks";
sw.WriteLine("There are {0} {1} in the sky", n, word);

格式化的行被写入流。 {0}{1} 占位符被 nword 变量的内容替换。

C# StreamWriter 追加文本

我们可以创建一个 StreamWriter,它会将文本附加到文件中。

public StreamWriter(string path, bool append);

此构造函数通过使用默认编码和缓冲区大小,为指定的文件初始化 StreamWriter 类的新实例。 如果文件存在,则可以覆盖或附加到它。 如果文件不存在,则构造函数会创建一个新文件。

Program.cs
var path = "words.txt";

using var sw = new StreamWriter(path, true);

char[] data = {'h', 'a', 'w', 'k'};
sw.WriteLine(data);

Console.WriteLine("data appended to file");

该示例将一个单词附加到 words.txt 文件中。

using var sw = new StreamWriter(path, true);

通过将 true 作为第二个参数传递给构造函数,以 Append 模式打开 StreamWriter

char[] data = {'h', 'a', 'w', 'k'};
sw.WriteLine(data);

WriteLine 的这个重载方法将一个字符数组写入流。

来源

StreamWriter 类 - 语言参考

在本文中,我们使用 StreamWriter 在 C# 中读取了文本文件。

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有丰富的编程经验。 自 2007 年以来,我一直在撰写编程文章。 至今,我已撰写了 1,400 多篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

列出所有 C# 教程