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之外的任何其他文件夹加载文件吗?
- 如何指定 CORS 的响应标头? 2022-01-01
- java.lang.IllegalStateException:Bean 名称“类别"的 BindingResult 和普通目标对象都不能用作请求属性 2022-01-01
- 获取数字的最后一位 2022-01-01
- 如何使 JFrame 背景和 JPanel 透明且仅显示图像 2022-01-01
- 未找到/usr/local/lib 中的库 2022-01-01
- 转换 ldap 日期 2022-01-01
- Eclipse 的最佳 XML 编辑器 2022-01-01
- 将 Java Swing 桌面应用程序国际化的最佳实践是什么? 2022-01-01
- 在 Java 中,如何将 String 转换为 char 或将 char 转换 2022-01-01
- GC_FOR_ALLOC 是否更“严重"?在调查内存使用情况时? 2022-01-01