Can I load files from any other folders than drawable or assets?(我可以从除Drawable或Assets之外的任何其他文件夹加载文件吗?)
问题描述
我知道Android中的大多数文件访问方法一般都是通过访问Drawable(使用R.Drawable..)来执行的。或某些资产(使用AssetManager)。
无论如何,我是否可以访问我的Android项目名称下的任何其他文件夹,如myFolderA或myNewFolderA?
如果可能的话,我想这些其他方式可能不被认为是正常的,但我只想知道这是否可能。
推荐答案
我是否可以访问Android项目名称下的
myfolderA
或myNewFolderA
等上述文件夹以外的其他文件夹?
是您可以,如Android Documentation中所述:
Android使用的文件系统类似于其他平台上的基于磁盘的文件系统。您可以使用Android文件系统File APIs
读写文件。
File
对象适合以从头到尾的顺序读取或写入大量数据,而无需跳过。例如,它适用于图像文件或通过网络交换的任何内容。
您还必须注意在哪里读/写您的文件:
内部和外部存储
所有Android设备都有两个文件存储区域:内部存储和外部存储。这些名字来自Android的早期,当时大多数设备都提供内置的非易失性存储器(内部存储),以及微型SD卡(外部存储)等可移动存储介质。有些设备将永久存储空间分为&内部和外部分区,因此即使没有可移动存储介质,也总是有两个存储空间,并且无论外部存储是可移动的还是不可移动的,API的行为都是相同的。以下列表汇总了有关每个存储空间的事实。
在内部存储上保存文件
在将文件保存到内部存储时,您可以通过调用以下两种方法之一获取相应的目录File
:
getFilesDir()
返回表示您的应用的内部目录的文件。
getCacheDir()
返回代表应用程序临时缓存文件的内部目录的文件。确保在不再需要每个文件时将其删除,并对您在任何给定时间使用的内存量实施合理的大小限制,例如1 MB。如果系统存储空间开始不足,它可能会在没有警告的情况下删除您的缓存文件。
要在其中一个目录中创建新文件,可以使用File()
构造函数,传递由上述方法之一提供的File
,该方法指定您的内部存储目录。例如:
File file = new File(context.getFilesDir(), filename);
外部存储的权限:
为了允许您进行读写,您必须授予权限:
<manifest ...>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
这篇关于我可以从除Drawable或Assets之外的任何其他文件夹加载文件吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:我可以从除Drawable或Assets之外的任何其他文件夹加载文件吗?
基础教程推荐
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01