Android 数据存储 《第一行代码》

一、文件存储

文件数据的保存

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)