android学习札记第10章之安卓数据存储概要

 时间:2026-02-17 10:16:03

1、IO直接存储(获得数据):

Environment.getExternalStorageDirectory():SD根目录/sdcard

Environment.getExternalStoragePublicDirectory():SD公共子目录

Environment.getDataDirectory():数据目录/data

Environment.getDownloadCacheDirectory():下载缓存目录/cache

Environment.getRootDirectory():系统目录/system

Environment.getExternalStorageState():获得状态信息->mounted(挂载)

android学习札记第10章之安卓数据存储概要

android学习札记第10章之安卓数据存储概要

2、IO直接存储(写入数据):

需要添加用户权限WRITE_EXTERNAL_STORAGE和IO异常

第一步:判断SD卡的状态是否是挂载

if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){

        Toast.makeText(this, "请检查SD卡", Toast.LENGTH_SHORT).show();

        return;

}

第二步:判断SD卡的空间大小

StatFs sf=new StatFs(SD.getpath());

int num=sf.getBlockCount();//获得SD卡块的数量

int size=sf.getBlockSize();//获得SD卡块的大小(字节)

int totalSize=num*size;//获得总大小

int available=sf.getAvailableBlocks();//获得可用块的数量

int availableSize=available*size;//获得可用块的空间大小

int freenum=sf.getFreeBlocks();//获得空闲块的数量==available

if(data.length()>availableSize){

        Toast.makeText(this, "外置存储空间不足", Toast.LENGTH_SHORT).show();

        return;

}

第三步:写入数据

FileOutputStream out=new FileOutputStream(file);

out.write(data.getBytes());

android学习札记第10章之安卓数据存储概要

android学习札记第10章之安卓数据存储概要

3、SDCARD私有目录:数据会在应用程序被卸载时一起删除

抽象类Context对象(Activity)中的方法:

File file=getExtermalFilesDir(Environment.DIRECTORY_PICTURES);//私有目录->/Android/data/包名/files/Pictures

File file=getExtermalCacheDir();//缓存目录->/Android/data/包名/cache

InputStream in=getResources().openRawResource(R.raw.dengchao);//只读文件夹

android学习札记第10章之安卓数据存储概要

1、IO直接存储(所在位置:/data/data/包名/files)

抽象类Context对象(Activity)中的方法:

FileOutputStream out=openFileOutput("file",Context.MODE_PRIVATE);//输出文件并且文件私有

getFileDir();//返回内部存储绝对目录

getcacheDir();//返回/data/data/包名/cache绝对目录

android学习札记第10章之安卓数据存储概要

2、偏好设置(所在位置:/data/data/包名/spared_prefs)

在应用程序(APP)中可以借助(SharedPreferences)存储app中的一些状态信息,记住一些系统的使用信息(手机号)。

保存偏好(SharedPreferences):

SharedPreferences sp=getSharedPreferences("user",Context.MODE_PRIVATE);//会生成一个user.xml

Edit et=sp.edit();//获得内容编辑对象

et.putString("phone",user);//向编辑对象写数据

et.commit();//提交数据,否则数据一直会在内存

偏好取值:

String text=sp.getString("phone","");

android学习札记第10章之安卓数据存储概要

android学习札记第10章之安卓数据存储概要

  • android学习札记第3章之面向对象四及安卓基础
  • Android数据的四种存储方式
  • android学习札记第4章之安卓表格、帧、网格布局
  • android学习札记第1章之安卓开发环境和入门
  • 安卓应用开发实战:[19]写xml文件
  • 热门搜索
    杨子个人资料简介 三菱劲炫怎么样 跳蚤咬了怎么办 董鄂妃简介 儿童脑筋急转弯大全及答案 绰号大全 李克勤个人资料简介 怎么调节屏幕亮度 康有为简介 鸡汤怎么煲好吃