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);
}

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

猜你喜欢

转载自blog.csdn.net/qq_28643195/article/details/107586786