我想要在我的Android应用程序中包含一个文本文件,它不是一个字符串文件,它是一个标准的文本文件。它包含定义在板上绘制的“地图”特征的数据。该文件不是XML文件,所以我不确定我应该把它放在哪里,或者这对于android来说这不是一个好的文件结构?你想这样做吗?如果你在那个目录下,你想把它们放在哪个目录下?你怎么想访问该文件?我知道如何使用FileInputStreams和FileOutputStreams我只需要知道如何访问该文件。欢迎并赞赏所有相关答案!
答案 0 :(得分:40)
在Android文件夹结构中使用assets
或raw
文件夹来保留该文件。有关详情,请阅读this
答案 1 :(得分:22)
你必须把你的文件放在资产文件夹中,如Waqas所说。
现在要访问它,你可以这样做。
我使用BufferedReader
给你一个例子BufferedReader reader = new BufferedReader(
new InputStreamReader(getAssets().open("YourTextFile.txt")));
小心点。在我的情况下,我不知道为什么现在,我无法读取大于1MB的文本文件,我不得不将它们分成多个小文件。似乎其他人有相同的文件大小问题,但我没有在Android开发者网站上找到任何相关的信息。如果有人知道更多这个......
关注
我对1MB的问题是由于早期版本的Android存在已知错误/限制。自从使用Android的最新版本以来,该问题不再存在。
答案 2 :(得分:0)
我只想添加到已接受的答案中(不幸的是,我没有足够的声誉来发表评论。)那里的教程链接解释了如何设置 res/raw 方法或 assets 方法大多很好,但实际上有一个更简单的方法。查看那里描述的名为 LoadFile 的函数。该函数相当冗长。假设您只需要一个 InputStream 变量,以便您可以读取和写入文件。然后删除第 77 行之后的所有内容!此外,您根本不需要资源 ID!您可以使用此功能:
//get the file as a stream
iS = resources.openRawResource(R.raw.mygpslog)
现在您所要做的就是返回 iS,您将拥有您想要的文件句柄。