安卓存储基本用法之SharedPreferences和内部外部存储

来源:互联网 发布:欧莱雅男士 知乎 编辑:程序博客网 时间:2024/04/30 09:58

SharedPreferences存储

1.创建sharedPreferences对象调用getSharedPreferences()函数

2.实例化SharedPreferences.Editor对象。

3.输入键值对

4.确认。

 程序启动时,想要初始化数据,应重载onStart()函数。

代码:

保存

//为了方便,自成一函数public void savingSharedPreferences() {SharedPreferences preferences = getSharedPreferences("people",MODE_WORLD_READABLE + MODE_WORLD_WRITEABLE);SharedPreferences.Editor editor = preferences.edit();editor.putString("name", "小强");editor.commit();}

获取

public void loadingSharedPreferences() {SharedPreferences preferences = getSharedPreferences("people",MODE_WORLD_READABLE);String msgString = preferences.getString("name", null);view.setText(msgString);}


内部存储

存:

1.创建FileOutStream 对象获取openFileOutput()函数

2.写入数据。

1.创建FileInStream对象获取openFileOutput()函数

2.定义一比特字节流byte[] reader=new byte[fis.available]

3.while(fis.read(reader))判断是否读取完毕,创建String对象来保存数据。
 

public void SavinginStore() {String string1 = "this is a test \n and is another";try {FileOutputStream fos = openFileOutput("people.txt",MODE_WORLD_READABLE + MODE_WORLD_WRITEABLE);//注意权限,第二个参数、fos.write(string1.getBytes());  //需要将String变量转换为btye类型fos.flush();fos.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void loadinginStore() {try {FileInputStream fis = openFileInput("people.txt");byte[] reader = new byte[fis.available()];String msgString = null;while (fis.read(reader) != -1) {msgString = new String(reader);}view.setText(msgString);} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}



 外部存储

外部存储跟内部存储差不多(个人觉得),只是在创建FileInStream和FileOutStream对象时有些不同,而且有时需要判断外部存储卡是否存在可写(还没有体会此好处)。

关键的是外部存储需要获取写入权限。在AndroidManifast.xml中申请。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

代码(FILENAME为一String变量,myData也是String变量)

public void savingoutStore() {try {FileOutputStream fos = new FileOutputStream(Environment.getExternalStorageDirectory() + "/" + FILENAME);fos.write(myData.getBytes());} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public void loadingoutstore() {String msg = null;try {FileInputStream fis = new FileInputStream(Environment.getExternalStorageDirectory() + "/" + FILENAME);byte[] reader = new byte[fis.available()];while (fis.read(reader) != -1) {msg = new String(reader);}view.setText(msg);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}


 



原创粉丝点击