Android 数据存储 《第一行代码》
2015-12-28 17:15
417 查看
一、文件存储
文件数据的保存
Context类中提供来openFileOutput()方法,用于将数据保存到指定文件中,使用该方法的时候需要提供两个参数,第一个参数是保存到的文件的文件名,第二个参数是文件的操作方式,有MODE_PRIVATE和MODE_APPEND两种,前者是默认方式,每次写入内容会覆盖原内容,后者是在文件中追加内容。该方法会返回一个FileOutputStream的对象。可以使用该对象来构造一个文件输出流。
public void save(String inputText){ FileOutputStream out = null; BufferedWriter writer = null; try{ out = openFileOutput("data", Context.MODE_PRIVATE); writer = new BufferedWriter(new OutputStreamWriter(out)); writer.write(inputText); }catch(IOException e){ e.printStackTrace(); }finally { try{ if(writer != null){ writer.close(); } }catch(IOException e){ e.printStackTrace(); } } }
文件数据的读取
Context类提供了一个openFileInput()的方法,该方法需要一个参数,即读取文件的文件名,返回一个FileInputStream对象,用于构造文件输出流。
public String load(){ FileInputStream in = null; BufferedReader reader = null; StringBuilder content = new StringBuilder(); try{ in = openFileInput("data"); reader = new BufferedReader(new InputStreamReader(in)); String line = ""; while((line = reader.readLine()) != null){ content.append(line); } }catch (IOException e){ e.printStackTrace(); }finally { if(reader != null){ try{ reader.close(); }catch (IOException e){ e.printStackTrace(); } } } return content.toString(); }
因为所有文件都是默认存储到/data/data//files/目录下的,所以传入的文件名参数不含路径,只是文件名
二、SharedPreference存储
该存储方式是使用键值对的方法存储数据存入数据
(1)获取SharedPredferences对象
1.Context类中的getSharedPreferences()方法传入两个参数,第一个传入的是文件名,第二个参数指定操作模式
可选MODE_PRIVATE和MODE_MULTI_PROCESS,前者是默认的参数,后者在多个进程中地同一个文件进行读写
2.Activity中的getSharedPreferences()方法
传入一个参数,只需要传入操作模式参数就好。
3.PreferenceManager类中的getDefaultSharedPreferences()方法
接收一个Context参数,并自动使用当前应用程序的包名为前缀来命名SharedPreferences文件
(2)调用Share的Preferences对象的edit()方法来获取一个SharedPreferences.Editor对象。
(3)向SharedPreferences.Edit对象中添加数据,putXXX()
(4)调用commit()方法提交数据
SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit(); editor.putString("name","shengang"); editor.putInt("age",20); editor.putBoolean("married",false); editor.commit();
读取数据
使用SharedPreferences对象的get方法SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE); String name = pref.getString("name", "");
相关文章推荐
- Android数据存储之内部文件存储(一)
- Android SDK r23
- Android中的广播Broadcast详解
- Android基础_SharedPreferences
- Android截屏浅析
- android内存优化总结
- Android Studio资源自动清理工具 - Lint Cleaner Plugin
- android的内部与外部存储目录
- android存储方式之SharedPreferences
- android 第一个界面 选项卡加toolbar
- AndroidVideoCache优化
- androidStudio 导入的库的位置
- Android BaseAdapter with Fragment
- Android 解决65535的限制(官网推荐方法)
- Android中的Notification
- Android studio 上面设置git 连接github
- Android Touch事件传递机制解析
- Android Studio 获取数字签名的方法
- android自定义键盘与更改单个Keys的背景色
- android初学之如何去除ExpandableListView的child之间的黑色分割线