欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Android 五大数据存储 (最实用的开发详解) 三 内部存储,外部存储

程序员文章站 2022-04-21 11:50:46
内部存储保 存 路 径 : data/data/包名/files 和 data/data/包名/cache支持保存类型: 一般用来保存文件类 ,缓存日志,它支持图片,音频,视频,文本等存储,但是当设备内存不足时,Android系统可能删除这些缓存文件来恢复空间。所以一些常用的文件不建议放在此位置......

内部存储

保 存 路 径 :
data/data/包名/shared_prefs//我们说的xml存储就在这里
data/data/包名/databases//创建的数据库的存储路径
data/data/包名/files //本地的文件存储
data/data/包名/cache//缓存存储
支持保存类型: 一般用来保存文件类 ,缓存日志,它支持图片,音频,视频,文本等存储,但是当设备内存不足时,Android系统可能删除这些缓存文件来恢复空间。所以一些常用的文件不建议放在此位置

外部存储

外部存储的目录分为两种:

共有目录: 九大公有目录
私有目录: storage/sdcard/Android/data/包名/files
storage/sdcard/Android/data/包名/cache
支持保存类型: 一般用来保存文件类 ,缓存日志,它支持图片,音频,视频,文本等存储,他的存储量取决于你手机的大小,值得一提的是,要是放在私有目录里当卸载apk文件的时候,数据也会相应删除,要是放在公有目录里 删除方式只有两种,手动在文件管理删除文件,或者代码执行deleteFile()函数

其实两种的操作都是通过File来进行增删改查,只是路径不同 下面我们来进行一个添加操作

路径获取函数 :
getDataDirectory()
getFilesDir()
getCacheDirgetDir()
getExternalStorageDirectory()
getExternalStoragePublicDirectory()
getExternalFilesDir()
getExternalCacheDir()
getExternalCacheDir()
getRootDirector
至于我们想存到哪里,还需要各位自己选择了

第一步添加数据


	public static boolean saveFile(byte[] data, String fileName, Context context) {
		BufferedOutputStream bos = null;
		if (isSDCardMounted()) {
			File file = context.getCacheDir();//这里值得注意的是我们选用那种存储就选哪个对应路径方法
	
			try {
				bos = new BufferedOutputStream(new FileOutputStream(new File(
						file, fileName)));
				bos.write(data);
				bos.flush();
				return true;
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				try {
					bos.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		return false;
	}

第二步 删除数据


public void deleteFile(String path)
{
    File dir = new File(path);//这里有必要左下非空判断,不然路径会报错
    deleteDirWihtFile(dir);
}

好的这个分享就写在这里了,有不当之处 还望大家多多指教

本文地址:https://blog.csdn.net/qq_28643195/article/details/107586786

相关标签: 数据存储