C# 文件输入输出 精简理解

目录

[常用 4 个工具](#常用 4 个工具)

[一、File 静态类(常用)](#一、File 静态类(常用))

[二、文本文件专业读写:StreamReader / StreamWriter](#二、文本文件专业读写:StreamReader / StreamWriter)

读

写

三、FileStream(读写字节)

[四、文件夹操作 Directory](#四、文件夹操作 Directory)

[五、3 个枚举(必须懂)](#五、3 个枚举(必须懂))

[1. FileMode(怎么打开文件)](#1. FileMode(怎么打开文件))

[2. FileAccess(权限)](#2. FileAccess(权限))

[3. FileShare(共享)](#3. FileShare(共享))

[六、为什么都用 using?](#六、为什么都用 using?)


C# 文件操作都在 System.IO 命名空间

必须引用 using System.IO;

文件操作 = 读 + 写 + 文件 / 文件夹管理

常用 4 个工具

  • File :静态类,一次性读写文件(最简单)
  • StreamReader / StreamWriter :读写文本文件
  • FileStream :读写字节(图片、视频、大文件)
  • Directory :操作文件夹

一、File 静态类(常用)

  1. 读文本
cs 复制代码
string content = File.ReadAllText("a.txt");
  1. 写文本(会覆盖)
cs 复制代码
File.WriteAllText("a.txt", "你好,C#");
  1. 追加文本
cs 复制代码
File.AppendAllText("a.txt", "追加的内容");
  1. 读所有行
cs 复制代码
string[] lines = File.ReadAllLines("a.txt");
  1. 复制、删除、移动
cs 复制代码
File.Copy("a.txt", "b.txt");
File.Delete("test.txt");
File.Move("a.txt", "new/a.txt");

二、文本文件专业读写:StreamReader / StreamWriter

适合大文件、逐行读写。

读
cs 复制代码
using (StreamReader sr = new StreamReader("a.txt"))
{
    string line;
    while ((line = sr.ReadLine()) != null)
    {
        Console.WriteLine(line);
    }
}
写
cs 复制代码
using (StreamWriter sw = new StreamWriter("a.txt"))
{
    sw.WriteLine("第一行");
    sw.WriteLine("第二行");
}

三、FileStream(读写字节)

用于图片、视频、二进制文件。

cs 复制代码
using (FileStream fs = new FileStream("a.dat", FileMode.OpenOrCreate))
{
    // 写字节
    byte[] data = new byte[] { 10, 20, 30 };
    fs.Write(data, 0, data.Length);
}

四、文件夹操作 Directory

cs 复制代码
// 创建文件夹
Directory.CreateDirectory("myfolder");

// 判断是否存在
bool exists = Directory.Exists("myfolder");

// 获取文件夹下所有文件
string[] files = Directory.GetFiles("myfolder");

五、3 个枚举(必须懂)

1. FileMode(怎么打开文件)

  • Open:打开(不存在报错)
  • Create:创建(存在覆盖)
  • OpenOrCreate:不存在就创建
  • Append:追加到末尾

2. FileAccess(权限)

  • Read
  • Write
  • ReadWrite

3. FileShare(共享)

一般用 None 或 Read

六、为什么都用 using?

因为文件是系统资源 ,using 会自动关闭文件,不占内存、不报错。

cs 复制代码
using (var fs = new FileStream(...))
{
    // 自动释放
}

C# 文件 IO 实操练习题 5道https://blog.csdn.net/m0_71071209/article/details/161318394?spm=1001.2014.3001.5502

相关推荐
见叶之秋18 分钟前
C++ 泛型世界的两块拼图:容器适配器与仿函数
java·开发语言
逗脑IDE38 分钟前
零基础学ESP32:RFID无线射频卡——让ESP32拥有“刷卡“能力!
开发语言·网络·人工智能·python·esp32·硬件开发
小师兄吃牛肉41 分钟前
C语言篇:内联函数
c语言·开发语言
yuniko-n1 小时前
【Java】字符串相关坑点
java·开发语言·python
用户788477316341 小时前
门店核销闭环:小程序扫码 + .NET 幂等接口 + WPF 看板,一天能跑通
微信小程序·c#
jimy11 小时前
虚函数vtable,链接时看到构造函数,linker把符号地址写入vtable(三)
开发语言·c++
ss2731 小时前
AI全栈实战 | 3.3-02 Python 并发:有 GIL 为什么还用多线程,asyncio 和 JS 事件循环同源不同味
开发语言·javascript·python
菜鸟~noob2332 小时前
【电子战】第20篇:凸优化与对数障碍法【含matlab代码】
开发语言·matlab
Wang's Blog2 小时前
Java框架 SpringCloud 快速入门: 服务拆分案例 Demo
java·开发语言·spring cloud
小小龙学IT2 小时前
Python SQLAlchemy 2.0 深度解析:从 Core 到 ORM 的数据访问双引擎
开发语言·数据库·python