0

0

C#如何进行文件和流操作?System.IO命名空间核心类用法详解

畫卷琴夢

畫卷琴夢

发布时间:2025-11-24 13:54:59

|

364人浏览过

|

来源于php中文网

原创

C#中文件和流操作通过System.IO命名空间实现,核心类包括File、FileInfo、Directory、DirectoryInfo和FileStream,用于处理文本、二进制文件及内存数据;File和Directory为静态类,适合一次性操作,如File.Exists检查文件是否存在,File.WriteAllText写入文本,Directory.CreateDirectory创建目录,Directory.GetFiles获取指定路径下的文件列表;FileInfo和DirectoryInfo为实例类,适用于对同一对象的多次操作;FileStream提供底层字节流访问,支持读、写、追加模式,常用于大文件或二进制数据处理,可通过new FileStream(path, FileMode.Open)打开文件。

c#如何进行文件和流操作?system.io命名空间核心类用法详解

C#中的文件和流操作主要通过System.IO命名空间中的类来实现。这些类提供了对文件、目录、数据流的读写和管理能力,适用于文本文件、二进制文件以及内存中数据的处理。下面介绍几个核心类及其常见用法。

File 和 FileInfo:文件级操作

File 是静态类,适合一次性文件操作;FileInfo 是实例类,适合多次操作同一文件。

常用功能包括创建、复制、删除、移动和检查文件是否存在:

  • File.Exists(path):判断文件是否存在
  • File.WriteAllText(path, content):写入文本(覆盖)
  • File.ReadAllText(path):读取全部文本内容
  • File.Copy(source, dest):复制文件
  • File.Delete(path):删除文件

示例:

if (File.Exists("data.txt"))
{
    string content = File.ReadAllText("data.txt");
    File.WriteAllText("backup.txt", content);
}

Directory 和 DirectoryInfo:目录管理

Directory 提供静态方法管理文件夹;DirectoryInfo 支持更精细的操作。

常见用途:

  • Directory.CreateDirectory(path):创建目录
  • Directory.GetDirectories(path):获取子目录列表
  • Directory.GetFiles(path):获取目录下所有文件
  • Directory.Delete(path, true):递归删除目录

示例:

Directory.CreateDirectory("logs");
string[] files = Directory.GetFiles("logs", "*.log");

FileStream:底层字节流操作

FileStream 允许以字节方式读写文件,适合大文件或二进制数据。

萝卜简历
萝卜简历

免费在线AI简历制作工具,帮助求职者轻松完成简历制作。

下载

可指定访问模式(读、写、追加)和共享方式。

  • 使用 new FileStream(path, FileMode.Open) 打开文件
  • StreamReader 或 BinaryReader 提高效率

示例:读取二进制文件

using (var fs = new FileStream("image.jpg", FileMode.Open))
{
    byte[] buffer = new byte[fs.Length];
    fs.Read(buffer, 0, buffer.Length);
    // 处理字节数组
}

StreamReader / StreamWriter:文本读写

这两个类用于高效处理字符数据,默认使用UTF-8编码。

  • StreamReader.ReadLine():逐行读取
  • StreamWriter.WriteLine():写入一行文本
  • 支持 using 语句自动释放资源

示例:按行处理日志文件

using (var reader = new StreamReader("log.txt"))
using (var writer = new StreamWriter("filtered.txt"))
{
    string line;
    while ((line = reader.ReadLine()) != null)
    {
        if (line.Contains("ERROR"))
            writer.WriteLine(line);
    }
}

MemoryStream:内存中的流操作

MemoryStream 将字节数组当作流使用,常用于临时存储或网络传输前的数据准备。

  • 避免频繁磁盘I/O
  • 可与 BinaryReader/BinaryWriter 结合使用

示例:

var ms = new MemoryStream();
var writer = new BinaryWriter(ms);
writer.Write("Hello in memory");
byte[] data = ms.ToArray(); // 获取结果

基本上就这些。掌握这些类的使用,就能应对大多数C#文件和流操作需求。关键是根据场景选择合适的方式:简单操作用 File/Directory,大量文本用 StreamReader/Writer,二进制数据用 FileStream + BinaryReader,内存处理用 MemoryStream。注意始终正确释放资源,推荐使用 using 语句。不复杂但容易忽略细节,比如编码问题或文件锁。

相关专题

更多
数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

269

2023.11.13

drop和delete的区别
drop和delete的区别

drop和delete的区别:1、功能与用途;2、操作对象;3、可逆性;4、空间释放;5、执行速度与效率;6、与其他命令的交互;7、影响的持久性;8、语法和执行;9、触发器与约束;10、事务处理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

210

2023.12.29

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

19

2026.01.20

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

61

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

87

2026.01.19

java输出数组相关教程
java输出数组相关教程

本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

10

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.19

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

19

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 4.7万人学习

Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Pandas 教程
Pandas 教程

共15课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号