目录
[常用 4 个工具](#常用 4 个工具)
[一、File 静态类(常用)](#一、File 静态类(常用))
[二、文本文件专业读写:StreamReader / StreamWriter](#二、文本文件专业读写:StreamReader / StreamWriter)
[四、文件夹操作 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 静态类(常用)
- 读文本
cs
string content = File.ReadAllText("a.txt");
- 写文本(会覆盖)
cs
File.WriteAllText("a.txt", "你好,C#");
- 追加文本
cs
File.AppendAllText("a.txt", "追加的内容");
- 读所有行
cs
string[] lines = File.ReadAllLines("a.txt");
- 复制、删除、移动
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