在Android中的目录中放置文本文件的位置

时间:2012-02-02 21:07:29

标签: java android file

我想要在我的Android应用程序中包含一个文本文件,它不是一个字符串文件,它是一个标准的文本文件。它包含定义在板上绘制的“地图”特征的数据。该文件不是XML文件,所以我不确定我应该把它放在哪里,或者这对于android来说这不是一个好的文件结构?你想这样做吗?如果你在那个目录下,你想把它们放在哪个目录下?你怎么想访问该文件?我知道如何使用FileInputStreams和FileOutputStreams我只需要知道如何访问该文件。欢迎并赞赏所有相关答案!

3 个答案:

答案 0 :(得分:40)

在Android文件夹结构中使用assetsraw文件夹来保留该文件。有关详情,请阅读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,您将拥有您想要的文件句柄。