c# 如何读取和写入文件

来源:AI智能体作者:葵司头衔:网络博主
导读:本期聚焦于小伙伴创作的《c# 如何读取和写入文件》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《c# 如何读取和写入文件》有用,将其分享出去将是对创作者最好的鼓励。

在C#的开发场景中,文件读取和写入是非常基础且常用的操作,无论是读取配置文件、存储日志数据还是处理用户上传的文件,都需要用到相关的文件操作能力。C#提供了多个类来支持文件读写,开发者可以根据实际需求选择合适的实现方式。

常用的文件读写类介绍

C#中处理文件读写最常用的类是StreamReaderStreamWriter,这两个类分别用于读取文本文件和写入文本文件,使用起来简单直观。除此之外,File类也提供了静态方法可以快速实现简单的文件读写操作,适合不需要复杂处理的场景。

StreamReader类

StreamReader继承自TextReader,用于从流中读取字符数据,通常用来读取文本文件的内容。它支持指定编码格式,避免读取中文等非英文字符时出现乱码问题。

StreamWriter类

StreamWriter继承自TextWriter,用于将字符数据写入流中,通常用来向文本文件写入内容。同样支持指定编码格式,也可以设置是否追加写入而不是覆盖原有内容。

文件读取的实现方法

使用StreamReader读取文件

使用StreamReader读取文件时,需要先创建实例指定要读取的文件路径,然后调用读取方法获取内容,最后记得关闭流释放资源,也可以使用using语句自动释放。

using System;
using System.IO;
using System.Text;

class FileReadDemo
{
    static void Main()
    {
        string filePath = "test.txt";
        // 使用using语句自动释放StreamReader资源
        using (StreamReader reader = new StreamReader(filePath, Encoding.UTF8))
        {
            // 读取全部内容
            string content = reader.ReadToEnd();
            Console.WriteLine("文件内容:");
            Console.WriteLine(content);
        }
    }
}

使用File类快速读取文件

如果是简单的读取场景,不需要复杂的流操作,可以直接使用File类的静态方法ReadAllText,一行代码就能完成读取,同样可以指定编码格式。

using System;
using System.IO;
using System.Text;

class FileReadDemo2
{
    static void Main()
    {
        string filePath = "test.txt";
        // 直接读取全部内容,指定UTF8编码
        string content = File.ReadAllText(filePath, Encoding.UTF8);
        Console.WriteLine("文件内容:");
        Console.WriteLine(content);
    }
}

文件写入的实现方法

使用StreamWriter写入文件

使用StreamWriter写入文件时,可以指定是否追加写入,如果第二个参数传true则会在文件末尾追加内容,传false或者不传则会覆盖原有内容。

using System;
using System.IO;
using System.Text;

class FileWriteDemo
{
    static void Main()
    {
        string filePath = "output.txt";
        // 使用using语句自动释放StreamWriter资源,第二个参数true表示追加写入
        using (StreamWriter writer = new StreamWriter(filePath, true, Encoding.UTF8))
        {
            writer.WriteLine("这是新写入的一行内容");
            writer.WriteLine("当前时间:" + DateTime.Now.ToString());
        }
        Console.WriteLine("文件写入完成");
    }
}

使用File类快速写入文件

简单的写入场景可以使用File类的WriteAllText方法,直接写入全部内容,如果需要追加内容可以使用AppendAllText方法。

using System;
using System.IO;
using System.Text;

class FileWriteDemo2
{
    static void Main()
    {
        string filePath = "output.txt";
        string content = "这是要写入的文件内容" + Environment.NewLine + "第二行内容";
        // 写入全部内容,覆盖原有内容
        File.WriteAllText(filePath, content, Encoding.UTF8);
        // 追加内容
        File.AppendAllText(filePath, Environment.NewLine + "这是追加的内容", Encoding.UTF8);
        Console.WriteLine("文件写入完成");
    }
}

注意事项

  • 操作文件时要注意异常处理,比如文件不存在、没有读写权限等情况,建议使用try-catch语句捕获IOException等异常。
  • 读取和写入非文本文件时,需要使用FileStream类操作字节流,而不是StreamReader和StreamWriter。
  • 使用完流之后一定要及时释放资源,避免文件被占用导致后续操作失败,优先使用using语句自动释放。
  • 如果处理的文件内容较大,不要一次性读取全部内容到内存,可以逐行或者分段读取,避免内存溢出。
操作场景推荐使用的类/方法特点
简单文本读取File.ReadAllText代码简洁,适合小文件
复杂文本读取/大文件读取StreamReader可逐行读取,支持自定义编码
简单文本写入File.WriteAllText/AppendAllText代码简洁,适合小文件
复杂文本写入/大文件写入StreamWriter可逐行写入,支持追加模式
非文本文件操作FileStream操作字节流,适合图片、视频等文件

以上就是C#中读取和写入文件的常用方法,开发者可以根据实际场景选择合适的方式,只要注意资源释放和异常处理,就能稳定实现文件操作功能。

C#文件读取文件写入StreamReaderStreamWriter修改时间:2026-06-08 16:33:29

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。