如何存储 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.dataPath
和Application.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存储并以其日期命令