Java 在Android中,文本文件在目录中的位置
我想在我的Android应用程序中包含一个文本文件,它不是字符串文件,而是标准文本文件。它包含定义在电路板上绘制的“地图”特征的数据。这个文件不是XML文件,所以我不确定应该把它放在哪里,或者对于android来说这不是一个好的文件结构?你打算这样做吗?如果你是在什么目录下,你想把他们?那么您打算如何访问该文件?我知道如何使用FileInputStreams和FileOutputStreams我只需要知道如何访问文件。欢迎并感谢所有相关答案 使用android文件夹结构中的Java 在Android中,文本文件在目录中的位置,java,android,file,Java,Android,File,我想在我的Android应用程序中包含一个文本文件,它不是字符串文件,而是标准文本文件。它包含定义在电路板上绘制的“地图”特征的数据。这个文件不是XML文件,所以我不确定应该把它放在哪里,或者对于android来说这不是一个好的文件结构?你打算这样做吗?如果你是在什么目录下,你想把他们?那么您打算如何访问该文件?我知道如何使用FileInputStreams和FileOutputStreams我只需要知道如何访问文件。欢迎并感谢所有相关答案 使用android文件夹结构中的资产或原始文件夹保存该
资产
或原始
文件夹保存该文件。如需了解更多信息,请阅读,您必须按照Waqas的说法将文件放入资产文件夹
现在要访问它,你就这样做
我举一个使用BufferedReader的例子
BufferedReader reader = new BufferedReader(
new InputStreamReader(getAssets().open("YourTextFile.txt")));
小心点。就我而言,我现在不知道为什么,我无法读取大于1MB的文本文件,我不得不将它们拆分成多个小文件。似乎其他人也有同样的文件大小问题,但我在Android开发者网站上没有找到任何相关信息。如果有人知道的更多
跟进
我对1MB的问题是由于Android早期版本的已知缺陷/限制。由于使用了最新版本的Android,这个问题就不再存在了。我只想补充一下公认的答案(不幸的是,我没有足够的声誉来评论)。这里的教程链接解释了如何设置res/raw方法或assets方法,这基本上是好的,但实际上有一个更简单的方法。看看这里描述的函数LoadFile。那个函数相当冗长。假设您只需要一个InputStream变量,这样您就可以读写文件了。然后删除第77行之后的所有内容!此外,您根本不需要资源id!您可以使用此功能:
//get the file as a stream
iS = resources.openRawResource(R.raw.mygpslog)
现在,您所要做的就是返回,这样您就可以获得所需的文件句柄
- 作为参考,教程就在这里->
file://android_asset/file.txt
,您可以立即访问该文件。你可以用它创建一个文件对象,或者做任何你喜欢的事情。这里接受的答案有更多关于资产文件夹的信息:我如何从android应用程序的应用程序文件夹中读取文件?如果我把.properties文件放在assets文件夹下,那么通过反向工程它是可见的。永远不要在应用程序/源代码中烘焙你的秘密内容。。。始终从在线来源发出请求,这样您将有更多的控制权。这是经验法则。如果文件位于资产中,则无法写入文件。