android存储方式

SP存储理解

SP存储专门用来存储一些单一的小数据

存储数据的类型:boolean,float,int,long,string

数据保存的路径:/data/data/packageName/shared_prefs/yyy.xml

可以设置数据只能是当前应用读取,不能被别的应用读取

应用卸载时会删除此数据

相关API:

示例:

publicclassSqlActivityextendsActivity{privateEditTextkey;privateEditTextvalue;privateButtonsave;privateButtonread;privateSharedPreferencessp=null;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_sql);key=(EditText)findViewById(R.id.et_key);value=(EditText)findViewById(R.id.et_value);save=(Button)findViewById(R.id.sp_save);read=(Button)findViewById(R.id.sp_read);//1.得到sp对象sp=getSharedPreferences("yabushan",Context.MODE_PRIVATE);}//保存publicvoidsp_save(Viewv){//2.得到Edit对象Editoreditor=sp.edit();//3.得到输入的key/valueStringkeysString=key.getText().toString();StringnamesString=value.getText().toString();//4.使用edit保存key-valueeditor.putString(keysString,namesString).commit();//5.给出操作提示Toast.makeText(this,"保存成功",0).show();}//读取publicvoidsp_read(Viewv){//1.读取keyStringkString=key.getText().toString();//2.根据key读取对应的value值Stringvalue=sp.getString(kString,null);//3.显示if(value==null){Toast.makeText(this,"没有找到对应的value",0).show();}else{this.value.setText(value);}}}

手机内部存储

内部存储理解

应用运行需要的一些较大的数据或图片可以用文件保存到手机内部;

文件类型:

任意

数据保存的路径:/data/data/projectPackage/files/

可以设置数据只能是当前应用读取,而别的应用不可以读取

应用卸载时会删除此数据


相关API:

/***手机内部保存*@throwsIOException*/publicvoidsave(Viewv)throwsIOException{//1.得到InputStream-->读取assets下的logo.png//得到AssetManagerAssetManagermanager=getAssets();//读取文件System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>"+getFilesDir().getAbsolutePath());InputStreamiStream=manager.open("logo.png");//2.得到outputstream-->/data/data/packageNames/files/logo.pngFileOutputStreamfoStream=openFileOutput("logo.png",Context.MODE_PRIVATE);//3.边读边写byte[]buffer=newbyte[1024];intlen=-1;while((len=iStream.read(buffer))!=-1){foStream.write(buffer,0,len);}foStream.close();iStream.close();//4.提示Toast.makeText(this,"保存完成",0).show();}/***手机内部存储读取*@paramv*/publicvoidread(Viewv){///data/data/packageNames/files/logo.png//1.得到图片文件的路径///data/data/packageNames/filesStringfilesPthString=getFilesDir().getAbsolutePath();StringimagePathString=filesPthString+"/logo.png";//2.读取加载图片文件到bitmap对象Bitmapbitmap=BitmapFactory.decodeFile(imagePathString);//3.将其设置到imageView中显示iv_if.setImageBitmap(bitmap);}

SD卡外部存储

理解:

应用运行用到的数据文件(如图片)可以保存到sd卡中

文件类型:任意

数据保存的路径:

路径1:/storage/sdcard/Android/data/packageName/files/

路径2:/storage/sdcard/xxx/

路径1:其他应用可以访问,应用卸载时删除

路径2:其他应用可以访问,应用卸载时不会删除

必须保证sd卡挂载在手机上才能读写,否则不能操作

相关API:




路径方式一:

/***SD卡外部存储保存*@throwsIOException*/publicvoidsd_save(Viewv)throwsIOException{//1.判断sd卡状态,如果是挂载状态才继续,否则提示if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//2.读取输入的文件名/内容Stringfilename=key.getText().toString();Stringcontent=value.getText().toString();//3.得到指定文件的outputStream//1.得到sd卡夏的files路径StringfileSpath=getExternalFilesDir(null).getAbsolutePath();//2.组成完整路径Stringfilepath=fileSpath+"/"+filename;//3.创建FileOutputStreamFileOutputStreamfos=newFileOutputStream(filepath);//4.写数据fos.write(content.getBytes("utf-8"));fos.close();//5.提示Toast.makeText(this,"保存完成",0).show();}else{Toast.makeText(this,"sk卡没有挂载",0).show();}}/***sd卡外部存储读取*@throwsIOException*/publicvoidsd_read(Viewv)throwsIOException{//1.判断sd卡状态,如果是挂载的状态才继续,否则给出提示if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//2.读取输入的文件名StringfileName=key.getText().toString();//3.得到指定的InputStream//3.1得到sd卡下的files路径StringfilesPaht=getExternalFilesDir(null).getAbsolutePath();//3.2组成完整路径StringfilePath=filesPaht+"/"+fileName;//3.3创建fileInputStreamFileInputStreamfis=newFileInputStream(filePath);//4.读取数据ByteArrayOutputStreambaos=newByteArrayOutputStream();byte[]buffer=newbyte[1024];intlen=-1;while((len=fis.read(buffer))!=-1){baos.write(buffer,0,len);}StringcontentString=baos.toString();//5.显示value.setText(contentString);}else{Toast.makeText(this,"SD卡没有挂载",0).show();}}


更多相关文章

  1. Android(安卓)FileUtil
  2. 解决Eclipse提示错误:Your project contains error(s)
  3. Android(安卓)使用Zxing2.1 来读取二维码
  4. Android存储访问错误 open failed: EACCES (Permission denied)
  5. 数据存储之Shared Preferences
  6. android数据库(随apk一起发布数据库)
  7. android基础回顾---activity生命周期
  8. android wifi scan and auto re-connect
  9. Bip44确定性算法的android实现

随机推荐

  1. Android音乐播放器【支持:速率调节,音调调
  2. Android(安卓)官方数据绑定 Data Binding
  3. Android之微信开放平台创建应用
  4. Android(安卓)获取图库中图片的坑
  5. Android(安卓)官方 switch 控件更改选中
  6. 弹窗之三:自定义Dialog
  7. 移动开发:Android官方提供的支持不同屏幕
  8. Android开发21——隐式意图
  9. android 在电脑上显示真机屏幕
  10. Service的onStartCommand方法的疑问