3.File文件类

3.文件操作相关-文件相关


3.1 知识点

代码中的文件操作是做什么

  • 在电脑上我们可以在操作系统中创建删除修改文件
  • 可以增删查改各种各样的文件类型
  • 代码中的文件操作就是通过代码来做这些事情

文件相关操作公共类

  • C#提供了一个名为File(文件)的公共类
  • 让我们可以快捷的通过代码操作文件相关
  • 类名:File
  • 命名空间:System.IO

文件操作File类的常用内容

File.Exists 判断文件是否存在

//Exists方法 判断文件是否存在
if (File.Exists(Application.dataPath + "/UnityTeach.tao"))
{
    print("UnityTeach.tao文件存在");
}
else
{
    print("UnityTeach.tao文件不存在");
}

File.Create 创建文件

//注意要传入的是路径
//要有/ 同时可能要手动在Inspector窗口右键刷新一次才能显示
//之后会使用创建文件方法的文件流返回值 进行写入
FileStream fs = File.Create(Application.dataPath + "/UnityTeach.tao");

File.WriteAllXX 写入内容到文件中

//WriteAll XX方法 写入文件
//将指定字节数组 写入到指定路径的文件中
//写入的是二进制数据
byte[] bytes = BitConverter.GetBytes(999);
File.WriteAllBytes(Application.dataPath + "/UnityTeach.tao", bytes);


//写入行信息 将指定的string数组内容 一行行写入到指定路径中
//写入的是字符串
//写入文件方法假如没有对应文件的话会在对应路径自动创建 可能要手动在Inspector窗口右键刷新一次才能显示
string[] strs = new string[] { "123", "韬老狮", "123123kdjfsalk", "123123123125243"};
File.WriteAllLines(Application.dataPath + "/UnityTeach2.tao", strs);


//写入文本信息
//将指定字符串写入指定路径 支持转义字符
File.WriteAllText(Application.dataPath + "/UnityTeach3.tao", "韬老狮哈\n哈哈哈哈123123131231241234123");

File.ReadAllXX 从文件读取内容

//ReadAllXX方法 读取文件
//读取字节数据
bytes = File.ReadAllBytes(Application.dataPath + "/UnityTeach.tao");
print(BitConverter.ToInt32(bytes, 0));
//读取所有行信息
strs = File.ReadAllLines(Application.dataPath + "/UnityTeach2.tao");
for (int i = 0; i < strs.Length; i++)
{
    print(strs[i]);
}
//读取所有文本信息
print(File.ReadAllText(Application.dataPath + "/UnityTeach3.tao"));

File.Delete 删除文件

//Delete方法 删除文件
//可能要手动在Inspector窗口右键刷新一次才能显示被删除
//注意 如果删除打开着的文件 会报错
File.Delete(Application.dataPath + "/UnityTeach.tao");

File.Copy 复制文件

//Copy方法 复制文件
//可能要手动在Inspector窗口右键刷新一次才能显示复制出来的文件
//假如被拷贝的路径上已经有对应文件 会报错 要传入第三个参数为true进行覆盖才不会报错 
//参数一:现有文件 需要是流关闭状态
//参数二:目标文件
//参数三:是否覆盖写入
File.Copy(Application.dataPath + "/UnityTeach2.tao", Application.dataPath + "/韬老狮.taolaoshi", true);

File.Replace 文件替换

//Replace方法 文件替换
//参数一:用来替换的路径
//参数二:被替换的路径
//参数三:备份路径 避免被替换的文件丢失 可以在备份路径看被替换的文件
File.Replace(Application.dataPath + "/UnityTeach3.tao", Application.dataPath + "/韬老狮.taolaoshi", Application.dataPath + "/韬老狮备份.taolaoshi");

File.Open 打开文件并写入或读取

//Open方法 以流的形式 打开文件并写入或读取
//参数一:路径
//参数二:打开模式
//参数三:访问模式
FileStream fs = File.Open(Application.dataPath + "/UnityTeach2.tao", FileMode.OpenOrCreate, FileAccess.ReadWrite);

总结

  • File类提供了各种方法帮助我们进行文件的基础操作,需要记住这些关键API
  • 一般情况下想要整体读写内容可以使用File提供的Write和Read相关功能

3.2 知识点代码

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

public class Lesson03_文件操作相关_文件相关 : MonoBehaviour
{
    void Start()
    {
        #region 知识点一 代码中的文件操作是做什么
        //在电脑上我们可以在操作系统中创建删除修改文件
        //可以增删查改各种各样的文件类型
        //代码中的文件操作就是通过代码来做这些事情
        #endregion

        #region 知识点二 文件相关操作公共类
        //C#提供了一个名为File(文件)的公共类 
        //让我们可以快捷的通过代码操作文件相关
        //类名:File
        //命名空间: System.IO
        #endregion

        #region 知识点三 文件操作File类的常用内容

        //Exists方法 判断文件是否存在
        if (File.Exists(Application.dataPath + "/UnityTeach.tao"))
        {
            print("UnityTeach.tao文件存在");
        }
        else
        {
            print("UnityTeach.tao文件不存在");
        }

        //Create方法 创建文件
        //注意要传入的是路径
        //要有/ 同时可能要手动在Inspector窗口右键刷新一次才能显示
        //之后会使用创建文件方法的文件流返回值 进行写入
        //FileStream fs = File.Create(Application.dataPath + "/UnityTeach.tao");

        //WriteAll XX方法 写入文件
        //将指定字节数组 写入到指定路径的文件中
        //写入的是二进制数据
        byte[] bytes = BitConverter.GetBytes(999);
        File.WriteAllBytes(Application.dataPath + "/UnityTeach.tao", bytes);
        //写入行信息 将指定的string数组内容 一行行写入到指定路径中
        //写入的是字符串
        //写入文件方法假如没有对应文件的话会在对应路径自动创建 可能要手动在Inspector窗口右键刷新一次才能显示
        string[] strs = new string[] { "123", "韬老狮", "123123kdjfsalk", "123123123125243"};
        File.WriteAllLines(Application.dataPath + "/UnityTeach2.tao", strs);
        //写入文本信息
        //将指定字符串写入指定路径 支持转义字符
        File.WriteAllText(Application.dataPath + "/UnityTeach3.tao", "韬老狮哈\n哈哈哈哈123123131231241234123");

        //ReadAllXX方法 读取文件
        //读取字节数据
        bytes = File.ReadAllBytes(Application.dataPath + "/UnityTeach.tao");
        print(BitConverter.ToInt32(bytes, 0));
        //读取所有行信息
        strs = File.ReadAllLines(Application.dataPath + "/UnityTeach2.tao");
        for (int i = 0; i < strs.Length; i++)
        {
            print(strs[i]);
        }
        //读取所有文本信息
        print(File.ReadAllText(Application.dataPath + "/UnityTeach3.tao"));

        //Delete方法 删除文件
        //可能要手动在Inspector窗口右键刷新一次才能显示被删除
        //注意 如果删除打开着的文件 会报错
        File.Delete(Application.dataPath + "/UnityTeach.tao");

        //Copy方法 复制文件
        //可能要手动在Inspector窗口右键刷新一次才能显示复制出来的文件
        //假如被拷贝的路径上已经有对应文件 会报错 要传入第三个参数为true进行覆盖才不会报错 
        //参数一:现有文件 需要是流关闭状态
        //参数二:目标文件
        //参数三:是否覆盖写入
        File.Copy(Application.dataPath + "/UnityTeach2.tao", Application.dataPath + "/韬老狮.taolaoshi", true);

        //Replace方法 文件替换
        //参数一:用来替换的路径
        //参数二:被替换的路径
        //参数三:备份路径 避免被替换的文件丢失 可以在备份路径看被替换的文件
        File.Replace(Application.dataPath + "/UnityTeach3.tao", Application.dataPath + "/韬老狮.taolaoshi", Application.dataPath + "/韬老狮备份.taolaoshi");

        //Open方法 以流的形式 打开文件并写入或读取
        //参数一:路径
        //参数二:打开模式
        //参数三:访问模式
        //FileStream fs = File.Open(Application.dataPath + "/UnityTeach2.tao", FileMode.OpenOrCreate, FileAccess.ReadWrite);

        #endregion

        #region 总结
        //File类提供了各种方法帮助我们进行文件的基础操作,需要记住这些关键API

        //一般情况下想要整体读写内容 可以使用File提供的Write和Read相关功能
        #endregion
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏