首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在streamingAssetsPath上读写文件

在streamingAssetsPath上读写文件
EN

Stack Overflow用户
提问于 2017-12-14 01:28:30
回答 2查看 9.4K关注 0票数 0

这就是我在android中读取文本文件的方式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#if UNITY_ANDROID
string full_path = string.Format("{0}/{1}",Application.streamingAssetsPath, path_with_extention_under_streaming_assets_folder);
// Android only use WWW to read file
        WWW reader = new WWW(full_path);
        while (!reader.isDone){}

        json = reader.text;

        // PK Debug 2017.12.11
        Debug.Log(json);
 #endif

这就是我从pc读取我的文本文件的方式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#if UNITY_STANDALONE
        string full_path = string.Format("{0}/{1}", Application.streamingAssetsPath, path_with_extention_under_streaming_assets_folder);
        StreamReader reader = new StreamReader(full_path);
        json = reader.ReadToEnd().Trim();
        reader.Close();
#endif

现在我的问题是我不知道如何在移动设备上写文件,因为我在单机上是这样做的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#if UNITY_STANDALONE
        StreamWriter writer = new StreamWriter(path, false);
        writer.WriteLine(json);
        writer.Close();
 #endif

帮助任何人

更新的问题

这是json文件,它位于我需要获取的streamingasset文件夹中

EN

回答 2

Stack Overflow用户

发布于 2017-12-14 07:54:06

现在我的问题是,我不知道如何在移动设备上写文件,因为我在单机上是这样做的

无法保存到此位置的Application.streamingAssetsPath是只读的。它是否能在编辑器上工作并不重要。它是只读的,不能用于加载data

从StreamingAssets读取数据的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
IEnumerator loadStreamingAsset(string fileName)
{
    string filePath = System.IO.Path.Combine(Application.streamingAssetsPath, fileName);

    string result;

    if (filePath.Contains("://") || filePath.Contains(":///"))
    {
        WWW www = new WWW(filePath);
        yield return www;
        result = www.text;
    }
    else
    {
        result = System.IO.File.ReadAllText(filePath);
    }

    Debug.Log("Loaded file: " + result);
}

用法

让我们从你的截图中加载你的"datacenter.json“文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void Start()
{
    StartCoroutine(loadStreamingAsset("datacenter.json"));
}

保存数据

保存可在所有平台上运行的数据的路径为Application.persistentDataPath。在将数据保存到该路径中之前,请确保在该路径中创建一个文件夹。您问题中的StreamReader可用于读取或写入此路径。

保存到Application.persistentDataPath路径:

使用File.WriteAllBytes

Application.persistentDataPath路径读取

使用File.ReadAllBytes

有关如何在中保存数据的完整示例,请参阅Unity post。

票数 4
EN

Stack Overflow用户

发布于 2017-12-14 07:54:49

这是我在没有WWW类(适用于Android和iOS)的情况下做到这一点的方法,希望它有用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void WriteDataToFile(string jsonString)
{

    if (!Directory.Exists(folderPath))
    {
        Directory.CreateDirectory(folderPath);
    }
    if (!File.Exists(filePath))
    {
        File.Create(filePath).Close();
        File.WriteAllText(filePath, jsonString);
    }
    else
    {
        File.WriteAllText(filePath, jsonString);
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47804594

复制
相关文章
GDB入门教程之如何使用GDB启动调试
写在前面:今天开始尝试写写除Vim外的其他内容,仍然是以技术为主,可能涉及的内容包括Linux、正则表达式、gdb、makefile等内容,不知道小伙伴们有没有兴趣看呢?不管如何,也算是我自己的知识沉淀吧~
我被狗咬了
2019/09/25
4.4K0
GDB入门教程之如何使用GDB启动调试
go 如何捕获异常
什么是异常? 不按照我们期望执行的都可以称之为异常 在Go语言中如何处理异常? 一种是程序发生异常时, 将异常信息反馈给使用者 一种是程序发生异常时, 立刻退出终止程序继续运行 将异常信息反馈给使用者
王小明_HIT
2021/07/05
1.4K0
如何防止网络诈骗
网络诈骗是指犯罪分子通过编造虚假信息,设置骗局,对受害人实施远程、非接触式诈骗,诱使受害人给犯罪分子打款或转账的犯罪行为。
腾讯举报中心
2020/02/25
1.4K0
ARM平台如何玩转GDB远程调试?
GDB工具是GNU项目调试器,基于命令行使用。和其他的调试器一样,可使用GDB工具单步运行程序、单步执行、跳入/跳出函数、设置断点、查看变量等等,它是UNIX/LINUX操作系统下强大的程序调试工具。GDB支持多种语言,包括Ada、汇编、C/C++、D、Fortran、GO、Objective-C、OpenCL、Modula-2、Pascal和Rust。
创龙科技Tronlong
2021/10/09
1.6K0
ARM平台如何玩转GDB远程调试?
Unity手游崩溃异常如何捕获--C#及JVM捕获
C#脚本未捕获的异常,与Android和Native未捕获异常很大的区别是,未捕获异常不会照成引用的闪退。所以,C#脚本的异常危害相对较小,但是同样更加容易存在在游戏中。闪退问题能够及时发现并进行修复。C#脚本异常,抛出的时机不同,危害性也有所不同; 在Start、Awake等函数抛出的异常,会造成Update、OnGUI无法正常运行,游戏可能表现为无响应、图片确实等。Update、OnGUI的异常也一定会引起游戏逻辑及画面上的一些异常。
WeTest质量开放平台团队
2018/10/29
4.4K0
PHP 如何捕获 Catchable fatal error?
error_reporting(E_ALL); ini_set("display_errors", "On"); function myErrorHandler($errno, $errstr, $errfile, $errline) { if (E_RECOVERABLE_ERROR === $errno) { throw new ErrorException($errstr, $errno, 0, $errfile, $errline); } return false; } s
OwenZhang
2021/12/08
3270
如何用 fiddler 捕获 https 请求
安装完 Fiddler 后,我们每次打开浏览器输入 url,Fiddler 便会捕获到我们的 http 请求(Fiddler 是以代理 web 服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888. 当浏览器打开时 Fiddler 会自动设置代理,退出的时候它会自动注销代理,这样就不会影响别的程序)。但是,如果要捕获 https 的请求,我们还需要进行一些额外的设置。
全栈程序员站长
2022/07/05
7720
如何用 fiddler 捕获 https 请求
站长如何防止网站被黑
网站被黑有哪些原因,第一个网站运行环境软件存在漏洞,我不知道大家有没有关心到前面的一个新闻。我们的一个运行软件PHPstudy,它实际上是存在一些漏洞问题的,大家我们这里可以来看一下,确实是PHPstudy的话,它的一个旧版本它确实存在一些漏洞问题,这里的话我就不仔细去给大家去看了只是说让大家了解一下。
技术分享达人
2022/04/21
1.3K0
站长如何防止网站被黑
如何防止数据重复插入?
问题起源,微信小程序抽风 wx.request() 重复请求服务器提交数据。后端服务也很简单,伪代码如下:
Lenis
2019/12/25
3.1K0
如何防止数据重复插入?
研发:如何防止混合内容
查找和修正混合内容是一项重要任务,但可能非常耗时。本指南将介绍可为此过程提供帮助的一些工具和技术。如需了解混合内容本身的更多信息,请参阅什么是混合内容。
heidsoft
2018/10/18
1.6K0
研发:如何防止混合内容
学习GDB
1 简介      GDB(GNU Debugger)是GCC的调试工具。其功能强大,现描述如下:      GDB主要帮忙你完成下面四个方面的功能:      1.启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。      2.可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)      3.当程序被停住时,可以检查此时你的程序中所发生的事。      4.动态的改变你程序的执行环境。 2 生成调试信息      一般来说GDB主要调试的是C/C++的程序。要调试C/C++
_gongluck
2018/03/08
1.5K0
GDB 调试
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
云雀叫了一整天
2019/09/29
1.6K0
gdb用法
x=(int*)malloc(25*sizeof(int)); p *x@25 或者 p (int [25])*x
用户1396155
2018/08/02
6840
如何防止网站套用iframe
相信很多小伙伴都遇到过这种情况。用iframe嵌套别人的网站,结果出现这个错误 nginx规则 add_header X-Frame-Options SAMEORIGIN; add_header X-Frame-Options ALLOW-FROM https://opencss.cn/; #允许单个域名 add_header X-Frame-Options "ALLOW-FROM http://lookcss.com/,https://opencss.cn/"; #允许多个域名 The X-Fr
2021/11/15
1.1K0
如何在docker的容器中使用gdb
话不多说,先上答案:在运行容器的时候,使用参数--cap-add sys_ptrace,比如:
Homqyy
2023/03/06
1.7K0
如何防止根目录被删?
周末误删根目录《就这样把根目录删了!!!》,引起了广泛的讨论: (1)部分朋友表达了同情 (2)部分朋友建议买机票跑路 (3)部分朋友分享了类似的悲剧(例如:多一个空格) rm -rf / home/work/logs/ (4)大部分朋友分享了避免类似悲剧的经验,今天将大伙的经验进行一个汇总,分享给大家,希望“误删根目录”的事情永远不再出现 一、悲剧回顾 执行了一个清理日志的脚本,大致的逻辑是: ... cd ${log_path} rm -rf * ... 看上去没有任何问题,进入到日志目录,然后把日志都
架构师之路
2018/03/01
1.9K0
GDB文档
官网提供了PDF、HTML各种版本,如下: Debugging with GDB
ccf19881030
2020/09/29
3.3K0
GDB文档
[C# 开发技巧]如何防止程序多次运行
最近发现很多人在论坛中问到如何防止程序被多次运行的问题的,如: http://social.msdn.microsoft.com/Forums/zh-CN/6398fb10-ecc2-4c03-ab25-d03544f5fcc9, 所以这里就记录下来,希望给遇到同样问题的朋友有所参考的,同时也是对自己的一个积累。在介绍具体实现代码之前,我们必须明确解决这个问题的思路是什么的?下面只要分享我的一个思考的这个问题的方式:
乔达摩@嘿
2020/09/11
1.9K0
[C# 开发技巧]如何防止程序多次运行
如何防止表单重复提交
在看Java Web 深入分析时, 看到表单重复提交问题一节, 如下描述如何解决问题:
望天
2018/08/02
3.1K0
如何防止表单重复提交
Python如何防止sql注入
豌豆贴心提醒,本文阅读时间10分钟 前言 web漏洞之首莫过于sql了,不管使用哪种语言进行web后端开发,只要使用了关系型数据库,可能都会遇到sql注入攻击问题。 那么在Python web开发的过程中sql注入是怎么出现的呢,又是怎么去解决这个问题的? 这里并不想讨论其他语言是如何避免sql注入的,网上关于PHP防注入的各种方法都有,Python的方法其实类似,这里我就举例来说说。 起因 漏洞产生的原因最常见的就是字符串拼接了。 当然,sql注入并不只是拼接一种情况,还有像宽字节注入,特殊字符转义等
小小科
2018/05/04
3.5K0
Python如何防止sql注入

相似问题

安装一直抱怨应该禁用Unicode库(mbstring),尽管它似乎已经禁用了。

10

如何使用xautoload和库加载库?

10

数据库访问数据库

10

/README.txt: UTF-8 Unicode (带BOM)英文文本,带有CRLF行终止符

10

站点/子域/库不加载库文件

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文