From:http://blog.csdn.net/lyh916/article/details/52161633

参考链接:

http://www.cnblogs.com/murongxiaopifu/p/4199541.html?utm_source=tuicool#autoid-3-2-0

http://zhaolongchn.blog.163.com/blog/static/1906585042013624115926451/

http://forum.china.Unity3D.com/thread-1516-1-1.html

在移动平台中,一般读取资源会通过下面这三个路径:

1.Resources

2.Application.streamingAssetsPath

3.Application.persistentDataPath(同时这个也是可写的)

重点说下下面这两个路径:

1.Application.streamingAssetsPath(只读)

需要手动建一个StreamingAssets文件夹。在打包时,Resources文件夹下的东西会被压缩和加密。而StreamingAssets文件夹中的内容则会原封不动的打入包中。

一般在Resources下放预制,StreamingAssets下放二进制文件(csv、bin、txt、xml、json、AB包等)

不能通过File类来读取这个路径,只能通过WWW类。这是因为在Android中,StreamingAssets的东西会被包含在.jar包中(类似于zip压缩文件)。

2.Application.persistentDataPath(可读可写)

安卓只有这个文件夹可以用File类来读写

测试

[csharp] view
plain
 copy

  1. using UnityEngine;
  2. using System.Collections;
  3. using System.IO;
  4. using UnityEngine.UI;
  5. using System.Text;
  6. public class Test : MonoBehaviour {
  7. public Text text0;
  8. public Text text1;
  9. public Text text2;
  10. public Text text3;
  11. private string path;
  12. private string content;
  13. void Start ()
  14. {
  15. //显示不同平台下的路径信息
  16. text0.text = Application.dataPath + "\n" + Application.streamingAssetsPath + "\n" + Application.persistentDataPath;
  17. //读取StreamingAssets下的文件
  18. if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer)
  19. {
  20. path = "file://" + Application.streamingAssetsPath + "/Data/AA.bin";
  21. }
  22. else if (Application.platform == RuntimePlatform.Android)
  23. {
  24. path = Application.streamingAssetsPath + "/Data/AA.bin";
  25. }
  26. StartCoroutine(Load(path, (s) => { content += Application.platform + "\n" + s + "\n"; }));
  27. //读取Resources下的文件
  28. text2.text = Resources.Load<TextAsset>("CC").text;
  29. //读取与写入Application.persistentDataPath下的文件
  30. path = Application.persistentDataPath + "/BB.txt";
  31. File.WriteAllText(path, "保佑这个也能读取成功啊~~hello??", Encoding.UTF8);
  32. text3.text = File.ReadAllText(path, Encoding.UTF8);
  33. }
  34. void Update()
  35. {
  36. if (!string.IsNullOrEmpty(content)) text1.text = content;
  37. }
  38. IEnumerator Load(string url, System.Action<string> action)
  39. {
  40. WWW www = new WWW(url);
  41. yield return www;
  42. //Debug.Log(www.text);
  43. action(www.text);
  44. }
  45. }

Ps:

1.如果读取的中文为乱码,则打开txt文件,另存为,选择编码为UTF-8即可。

2.对于Application.dataPath路径的东西(不包括StreamingAssets和Resources),除非被引用,否则不会被打包。所以不建议把数据文件放在这个路径。具体的自行打包exe就知道了。

[Unity基础]移动平台下的文件读写的更多相关文章

  1. QXmlStreamReader/QXmlStreamWriter实现Qt下xml文件读写

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QXmlStreamReader/QXmlStreamWriter实现Qt下xml文件读写   ...

  2. Cocos2d-x在win32,android和IOS下的文件读写问题

    最近在学习和使用Cocos2d-x框架,虽然说的是跨平台,但是在用VS进行开发,然后移植到android或IOS下,也可能会出现各种问题,需要做细微的调整. 例如我在做文件读写操作的时候,很可能在wi ...

  3. Unity读取StreamingAssets路径下的文件

    /// <summary> ///读取StreamingAssets中的文件 /// </summary> /// <param name="path" ...

  4. Win环境下的文件读写

    在win环境下,有许多方法可以对文件进行读写操作,如MFC 中的CFile类,及一些开源的项目如QT中的QFile.开源的好得是可以多平台,而MFC只是微软自家的东西,对于想写跨平台的人,最好不用MF ...

  5. flutter 如何实现文件读写(使用篇)

    flutter文件读写可以对磁盘文件进行操作,实现某些业务场景,那么我们开始来讲下这个文件读写操作. 使用的库插件(package) dart:io(用于数据处理) path_provider (用于 ...

  6. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

  7. 第二篇:python基础之文件读写

    python基础之文件读写   python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使 ...

  8. Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析

    Office文件的奥秘——.NET平台下不借助Office实现Word.Powerpoint等文件的解析 分类: 技术 2013-07-26 15:38 852人阅读 评论(0) 收藏 举报 Offi ...

  9. python 基础-文件读写'r' 和 'rb'区别

    原文链接: python基础-文件读写'r' 和 'rb'区别 一.Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r ...

随机推荐

  1. prometheus的坑

    prometheus是一个用于监控k8s集群状态的工具.今天在主机上配置这个东西,遇到了一个坑,调查了一段时间才解决,记之. 首先,根据网上的教程,利用helm安装这个东西很方便,只要三条指令(ref ...

  2. Shortest Path [3]

    -----------应要求删除---------------

  3. C#开发微信公众平台-就这么简单(转载)

    写在前面 服务号和订阅号 URL配置 创建菜单 查询.删除菜单 接受消息 发送消息(图文.菜单事件响应) 示例Demo下载 后记 最近公司在做微信开发,其实就是接口开发,网上找了很多资料,当然园友也写 ...

  4. django dispatch

    from django.views import View # 这里Home需要继承View class Home(View): # 这样这里就相当于一个装饰器的功能,可以自己定制化内容 def di ...

  5. 【翻译自mos文章】在Oracle单机数据库中定义database service

    来源于: Defining a Database Service with a Stand Alone Database (文档 ID 1260134.1) APPLIES TO: Oracle Da ...

  6. @Autowired与@Resource的使用方法和差别

    一.@Autowired: 1.Spring 2.5 引入了 @Autowired 凝视,它能够对类成员变量.方法及构造函数进行标注,完毕自己主动装配的工作. 通过 @Autowired的使用来消除 ...

  7. 百度MUX:APP动效之美需内外兼修

    移动互联网时代已经到来.APP已如天空的繁星.数也数不清.随着手机硬件的不断升级,实现炫酷且流畅的动效不再是遥远的梦想.假设你是APP达人,喜欢试用各种APP,你肯定会发现越来越多的APP開始动效化. ...

  8. 修改 Ubuntu 13.04 LAMP 服务器端口号

    因为今天想让一台Ubuntu 13.04服务器对外 web 服务的端口号为8000,自己改了一下,但是就是无法访问,端口后依然为 80.所以在网上找了一下修改端口的办法,原来我还少修改了一个文件,这里 ...

  9. Oracle 官网 jdk1.6 下载地址

    在oracle官方网站下载地址 http://www.oracle.com/technetwork/java/archive-139210.html http://www.oracle.com/tec ...

  10. Linux下默认的目录介绍

    目录/文件 用途 来源 / /处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录.文件.设备都在/之下. - /bin 该目录存放着系统最常用的最重要的命令,相当于DOS ...