前几天尝试了unity中截图的效果 虽然是实现了但是其中还是有很多不明白的地方
运行截图博客传送门
这篇博客先补充一下文件操作相关的知识
我这里介绍一下如何创建文件(txt)如何向文件中写入数据
如何删除文件中的数据 如何读取文件中的数据
写入文件
public void WriteFileByLine(string file_path, string file_name, string str_info)//三参数写入文件
{
StreamWriter sw;
if (!File.Exists(file_path + "//" + file_name))
{
sw = File.CreateText(file_path + "//" + file_name);//创建一个用于写入 UTF-8 编码的文本
Debug.Log("文件创建成功!");
}
else
{
sw = File.AppendText(file_path + "//" + file_name);//打开现有 UTF-8 编码文本文件以进行读取
}
sw.WriteLine(str_info);//以行为单位写入字符串
sw.Close();
sw.Dispose();//文件流释放
}
上边的语句做了安全监测 如果提供该路径不存在 会创建文件
使用的时候
WriteFileByLine(Application.persistentDataPath, "my_newfile.txt", "张子帅nb");
WriteFileByLine(@"F:\Unity3D\课程资料\工程\U3DAvatar\Assets\Scripts", "开始.txt", "初来乍到 多多关照");
其中三个参数 第一个路径 第二个文件名称 第三个写入内容
读取文件
public List<string> ReadFileList(string file_path, string file_name)//读取文件
{
StreamReader sr;
if (File.Exists(file_path + "//" + file_name))
{
sr = File.OpenText(file_path + "//" + file_name);
}
else
{
Debug.LogError("没有找到文件!");
return null;
}
List<string> list = new List<string>();
string str;
while ((str = sr.ReadLine()) != null)
list.Add(str);//加上str的临时变量是为了避免sr.ReadLine()在一次循环内执行两次
sr.Close();
sr.Dispose();
return list;
}
返回值一个string类型的list 我们可以复制 在unity中很方便的可以看到结果
两个参数分别是路径 文件名称
s = ReadFileList(Application.persistentDataPath, "my_newfile.txt");
s2 = ReadFileList(@"F:\Unity3D\课程资料\工程\U3DAvatar\Assets\Scripts", "开始.txt");
删除文件(清空)
public void deletefile(string file_path, string file_name)//删除的方法
{
File.Delete(file_path + "//" + file_name);
}
和读取的参数一样
deletefile(@"F:\Unity3D\课程资料\工程\U3DAvatar\Assets\Scripts", "开始.txt");
deletefile(@"F:\Unity3D\课程资料\工程\U3DAvatar\Assets\Scripts", "开始副本.txt");
copy文件
File.Copy(@"F:\Unity3D\课程资料\工程\U3DAvatar\Assets\Scripts\开始.txt", @"F:\Unity3D\课程资料\工程\U3DAvatar\Assets\Scripts\开始副本.txt");
如果你也是unity爱好者 欢迎关注我的博客
我会在这里持续更新我的学习过程
祝大家头发浓密 睡眠良好 财富自由
我是一名爱健身的准程序员