一个文件是一个存储在磁盘中带有指定名称和目录路径的数据集合,当打开文件进行读写时,它变成一个流
从根本上来说,流是通过通信路径传递的字节序列,有两个主要的流,输入流和输出流,输入流用于从文件读取数据,输出流用于向文件写入数据
一、I/O类
1:Directory类
对文件夹的操作主要通过Directory类和DirectoryInfo类进行,这两个类中都包含了一组用来创建、移动、删除和枚举所有目录或者子目录的成员的方法 常用方法如下
DirectoryInfo类与Directory类区别在于前者是普通类,需要先实例化才能使用,后者是静态类可以直接使用
CreateDirectory 在指定路径中创建所有目录和子目录
Delete 从指定路径中删除空目录
Exists 判断指定目录中是否存在现有目录
2:File类
对文件的创建 删除 移动 打开操作主要使用File类和FileInfo类
Create 在指定路径中创建或覆盖文件
Delete 删除指定的文件
Exists 确定指定的文件是否存在
Move 将指定的文件移动新位置
Open 打开指定路径的文件 指定读或写模式
3:Stream类
Stream类用于从文件中读取二进制数据,或使用流读写文件 常用方法如下
Read 从基础流中读取字符 并把流的当前位置往前移
Close 关闭当前Stream对象和基础流
Write 把数据写入基础流中
Flush 清理当前所有缓冲区 使所有缓冲数据写入基础设备
Seek 设置当前流内的位置
二、读/写文件
比较常用的方法就是使用File类打开文件,读取数据,将数据保存在FileStream文件流对象中,FileStream类继承于Stream类 然后通过FileStream文件流对象写入数据
using System.IO; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test_11_1 : MonoBehaviour { void Start() { //首先判断是否存在文件夹 if (Directory.Exists(@"C:\Temp")) { //存在文件夹 //删除当前文件夹 Directory.Delete(@"C:\Temp", true); //然后创建文件夹 Directory.CreateDirectory(@"C:\Temp"); } else { //不存在文件夹 Directory.CreateDirectory(@"C:\Temp"); } } }
向文件中写入数据
using System.IO; using System.Text; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test_11_2 : MonoBehaviour { void Start() { string path = @"C:\Temp\MyTest.txt"; //首先判断是否存在文件 if (!File.Exists(path)) { //创建文件 using (FileStream fs=File.Create(path)) { byte[] info = new UTF8Encoding(true).GetBytes("new text"); //添加数据到文件中 fs.Write(info, 0, info.Length); } } using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None)) { byte[] b = new byte[1024]; UTF8Encoding temp = new UTF8Encoding(true); while (fs.Read(b, 0, b.Length) > 0) { Debug.Log(temp.GetString(b)); } } } }
创作不易 觉得有帮助请点赞关注收藏~~~