您的位置:首页 > 移动开发 > Android开发

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", "");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: