C#中使用 StreamWriter 打开并写入文件的方法

Ivy
Ivy
发布时间:2026-10-14| 6人浏览过
原创

C# 提供了丰富的文件系统操作库,其中 System.IO.StreamWriter 是专门用于将字符写入流的类型。本文将通过一个完整的示例,展示如何使用该组件打开文件、逐行写入内容以及处理潜在的文件异常。

核心实现逻辑

StreamWriter 的构造函数接受文件路径字符串作为参数。当传入的路径指向不存在或非当前目录下的文件时,该类会自动创建新文件;若文件已存在且未指定覆盖参数,默认行为可能取决于具体构造函数的重载版本(通常简单的字符串构造函数会覆盖现有内容或尝试创建)。以下演示展示了如何结合 try-catch 块来确保操作的健壮性。

第1步:引入命名空间与定义流对象

首先需要在代码顶部引用 System 和 System.IO 命名空间,并声明 StreamWriter 类型的变量。

  1. 引用必要库:using System; 和 using System.IO;
  2. 声明变量:StreamWriter fstr_out;

第2步:创建文件流实例

使用 new StreamWriter("test.txt") 语法直接创建流对象。此操作会尝试打开或创建名为 test.txt 的文件。

try {
    // 直接通过文件路径创建 StreamWriter,文件不存在则自动创建
    fstr_out = new StreamWriter("test.txt");
} catch (IOException exc) {
    Console.WriteLine(exc.Message + " Cannot open file.");
    return;
}

注意:如果文件被其他进程独占锁定,或者没有足够的权限访问该路径,此处将抛出 IOException。

第3步:循环写入用户输入数据

在确认流成功打开后,程序进入交互模式,读取控制台输入并将其追加到文件中。

  1. 提示用户输入信息。
  2. 通过 Console.ReadLine() 获取字符串。
  3. 手动添加换行符("\r\n")以确保不同行的内容在不同段落显示。
  4. 调用 fstr_out.Write(str) 将数据写入流。
// 模拟用户输入循环直到输入 "stop"
do {
    Console.Write(": ");
    str = Console.ReadLine();
    if (str != "stop") {
        str = str + "\r\n"; // 添加换行标记
        try {
            fstr_out.Write(str);
        } catch (IOException exc) {
            Console.WriteLine(exc.Message + " File Error");
            return;
        }
    }
} while (str != "stop");

第4步:关闭流与资源清理

所有写入完成后,必须显式调用 fstr_out.Close()。这一步不仅关闭了与文件的连接,还会刷新缓冲区中的数据到磁盘,防止数据丢失。

fstr_out.Close();

虽然上述示例使用了直接的 Close() 方法,在实际的大型项目开发中,更推荐使用 using 语句块来管理资源,这样可以确保即使发生异常,底层资源也能得到正确的释放。

以上就是 C# 使用 StreamWriter 打开并写入文件的详细内容,更多关于 C# 文件 I/O 操作的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。