2022-10-26 Unity 2进制1——文件操作
创始人
2024-03-31 06:18:44
0

文章目录

        • 一、各类型数据和字节数据相互转换
        • 二、文件操作
        • 三、文件操作 File 类的常用内容

​ 2 进制文件读写的本质就是通过将各类型变量转换为字节数组,将字节数组直接存储到文件中,一般人是看不懂存储的数据的

​ 不仅可以节约存储空间,提升效率,还可以提升安全性,而且在网络通信中我们直接传输的数据也是字节数据(2 进制数据)

一、各类型数据和字节数据相互转换

(一)基本类型数据

​ C# 提供了一个公共类帮助我们进行转化,我们只需要记住 API 即可

  • 类名:BitConverter
  • 命名空间:using System
// 1.将各类型转字节
byte[] bytes = BitConverter.GetBytes(256);// 2.字节数组转各类型
int i = BitConverter.ToInt32(bytes, 0);
print(i);

(二)字符串

​ C# 有一个专门的编码格式类,来帮助我们将字符串和字节数组进行转换

  • 类名:Encoding
  • 需要引用命名空间:using System.Text
// 1.将字符串以指定编码格式转字节
byte[] bytes2 = Encoding.UTF8.GetBytes("唐老狮");// 2.字节数组以指定编码格式转字符串
string s = Encoding.UTF8.GetString(bytes2);
print(s);

二、文件操作

​ 在电脑上我们可以在操作系统中创建删除修改文件,可以增删查改各种各样的文件类型

​ 代码中的文件操作就是通过代码来做这些事情

​ C# 提供了一个名为 File(文件)的公共类,让我们可以快捷的通过代码操作文件相关

  • 类名:File
  • 命名空间: System.IO

三、文件操作 File 类的常用内容

(一)判断文件是否存在

if (File.Exists(Application.dataPath + "/UnityTeach.tang")) {print("文件存在");
}
else {print("文件不存在");
}

(二)创建文件

FileStream fs = File.Create(Application.dataPath + "/UnityTeach.tang");

(三)写入文件

// 将指定字节数组 写入到指定路径的文件中
byte[] bytes = BitConverter.GetBytes(999);
File.WriteAllBytes(Application.dataPath + "/UnityTeach.tang", bytes);// 将指定的string数组内容 一行行写入到指定路径中
string[] strs = new string[] { "123", "唐老狮", "123123kdjfsalk", "123123123125243" };
File.WriteAllLines(Application.dataPath + "/UnityTeach2.tang", strs);// 将指定字符串写入指定路径
File.WriteAllText(Application.dataPath + "/UnityTeach3.tang", "唐老狮哈\n哈哈哈哈123123131231241234123");

(四)读取文件

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

(五)删除文件

// 注意 如果删除打开着的文件 会报错
File.Delete(Application.dataPath + "/UnityTeach.tang");

(六)复制文件

// 参数一:现有文件 需要是流关闭状态
// 参数二:目标文件
File.Copy(Application.dataPath + "/UnityTeach2.tang", Application.dataPath + "/唐老狮.tanglaoshi", true);

(七)文件替换

// 参数一:用来替换的路径
// 参数二:被替换的路径
// 参数三:备份路径
File.Replace(Application.dataPath + "/UnityTeach3.tang", Application.dataPath + "/唐老狮.tanglaoshi", Application.dataPath + "/唐老狮备份.tanglaoshi");

(八)以流的形式打开文件并写入或读取

// 参数一:路径
// 参数二:打开模式
// 参数三:访问模式
FileStream fs = File.Open(Application.dataPath + "/UnityTeach2.tang", FileMode.OpenOrCreate, FileAccess.ReadWrite);

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

相关内容

热门资讯

新华社快讯:韩国检方对尹锡悦、... 新华社快讯:负责调查韩国前第一夫人金建希案件的特检组29日发布最终调查结果,对包括前总统尹锡悦、金建...
巩固国家通用语言文字法律地位 本报记者 朱宁宁 我国第一部有关语言文字的专门法律——国家通用语言文字法完成首次大修。 2025年1...
甘肃“十五五”规划建议:加快构... 中共甘肃省委关于制定国民经济和社会发展第十五个五年规划的建议发布,其中提到,加快构建 房地产发展新模...
部署六大重点工作 2026年积... 来源:经济参考报 12月27日至28日在京召开的全国财政工作会议为2026年的财政工作划定了重点。会...
权威抚养权律师推荐:家理(深圳... 在抚养权纠纷中,当事人急需专业且靠谱的律师来维护自身权益。那么,资深抚养权律师哪个好,经验丰富的抚养...
四川拓宽法律援助范围 今年办理... “终于胜诉了!要是按以前的规定,我这种情况属于合同纠纷,不符合法律援助申请条件。”近日,来自自贡市的...
汽车早报|零跑汽车发布首款MP... 重庆追加汽车置换、汽车报废更新补贴 据重庆日报,重庆市商务委消息,为贯彻落实国家部委相关要求,扎实...
自贸试验区昆明片区发布一批区域... 12月26日,中国(云南)自贸试验区昆明片区举行制度创新专题新闻发布会,联合昆明综合保税区发布一批改...
原创 存... “钱存银行,50万以内绝对安全”。 这句话你一定听过,但很多人只知其一,不知其二。 2015年《存款...
美银CEO判断:特朗普关税政策... 智通财经获悉,美国银行首席执行官Brian Moynihan表示,尽管2025年的关税措施曾冲击美国...