unity文件操作基础

前几天尝试了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爱好者 欢迎关注我的博客
我会在这里持续更新我的学习过程
祝大家头发浓密 睡眠良好 财富自由
我是一名爱健身的准程序员

发布了88 篇原创文章 · 获赞 101 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_44302602/article/details/105737183