如何存储 txt 文件(读/写)并为 Android 构建

Posted

技术标签:

【中文标题】如何存储 txt 文件(读/写)并为 Android 构建【英文标题】:How to store txt file (reading/writing) and build for Android 【发布时间】:2020-10-01 23:43:32 【问题描述】:

我正在制作一个关于人们之间共享问题的游戏,我想在游戏中添加一些原生问题。在我制作这个游戏的过程中,我需要在 Unity 中存储一个文本文件,其中包含关于这些问题的每一行信息。我需要在运行时读取和写入该 txt 文件。

所以我基本上在Resources文件夹中做了一个文件questions.txt,在Unity编辑器中其实没问题:我可以随心所欲地写和读。

但是,当我在我的 android 设备上尝试时,找不到 txt 文件。

我读到这是因为 Resources 文件夹不是基于 android 构建的。 然后,我迷路了。我读过有关 TextAsset 的信息,但它是只读的。我找不到使用Application.dataPathApplication.persistentDataPath 的方法,因为该文件实际上不是使用某些脚本创建的。

这就是我现在寻求帮助的原因。我有点迷茫,我只是想要一些关于如何实现它的提示。

感谢您花时间阅读和帮助。 :)

【问题讨论】:

你是通过Unity编辑器导入还是直接放到文件夹中?编辑:你是对的,我的错:) 在构建 apk 之前它已经在 Resources 文件夹中。我想知道是否有正确的方法来做我在使用编辑器但在 android 上测试时实际可以做的事情。 在 Android 下运行时可以访问 res/raw 和 assets 文件夹。所以把它们放在那里。 when I tried on my android device, the txt file couldn't be found.。这取决于您搜索的方式和位置。他们在那里。 在上述文件夹中,资源文件是只读的。因此,在运行时将您的文件复制到文件系统并在那里进行编辑。 @blackapps 好吧,我不知道它是否是在 android 上构建时的正确路径,但这是我的代码:string path = "Assets/Resources/questions.txt"; string[] lines = File.ReadAllLines(path); 并且错误是 DirectoryNotFoundException: Could not find a part of the path "/Assets/Resources/questions.txt". 在编辑器中运行良好,而不是在安卓。 【参考方案1】:

至少在我的情况下,我想出了如何去做。 制作了一个包含public TextAsset 的脚本。我通过检查器将我的 questions.txt 分配给了该 TextAsset。

TextAsset 是只读的。但这里是提示:我将该文件的内容完全复制到了我在Application.persistentDataPath 中创建的另一个文件中,它允许读取和写入

然后,如果我想在游戏中添加原生问题,我需要做的就是从我可以在构建之前修改的 TextAsset 中复制我需要的行。

感谢@blackapps 的小提示。解决了!

【讨论】:

以上是关于如何存储 txt 文件(读/写)并为 Android 构建的主要内容,如果未能解决你的问题,请参考以下文章

java读取excel文件,按照指定的日期条件读数据,然后导出txt存储并以其日期命令

C语言从TXT文档中读取一组数字时如何判断已经读到最后一个数字?

linux写保护文件如何产生

android 如何读写文件?

基本文件处理-爬取豆瓣电影排行榜

java读txt方法