首页 > 代码库 > Android:日常学习笔记(9)———探究持久化技术

Android:日常学习笔记(9)———探究持久化技术

Android:日常学习笔记(9)———探究持久化技术

引入持久化技术

什么是持久化技术

  持久化技术就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失。

Android系统提供的三种持久化技术:

  文件存储、SharedPreference(使用共享首选项)存储以及数据库存储。

文件存储

说明:

  您可以直接在设备的内部存储中保存文件。默认情况下,保存到内部存储的文件是应用的私有文件,其他应用(和用户)不能访问这些文件。 当用户卸载您的应用时,这些文件也会被移除。

要创建私有文件并写入到内部存储:

  1. 使用文件名称和操作模式调用 openFileOutput()。 这将返回一个 FileOutputStream
  2. 使用 write() 写入到文件。
  3. 使用 close() 关闭流式传输。

要从内部存储读取文件:

  1. 调用 openFileInput() 并向其传递要读取的文件名称。 这将返回一个 FileInputStream
  2. 使用 read() 读取文件字节。
  3. 然后使用 close() 关闭流式传输。

通用代码

 public void save1(String text)
    {
        FileOutputStream out = null;
        BufferedWriter writer = null;
        try {
            out = openFileOutput("data",MODE_PRIVATE);
            writer = new BufferedWriter(new OutputStreamWriter(out));
            writer.write(text);
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(writer!=null)
                try {
                    writer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }
    }
    public void read1()
    {
        FileInputStream in =null;
        BufferedReader reader = null;
        StringBuilder content = new StringBuilder();

        try {
            in = openFileInput("data");
            reader = new BufferedReader(new InputStreamReader(in));
            String line =null;
            while ((line=reader.readLine())!=null)
                content.append(line);
            Toast.makeText(StoreActivity.this,content,Toast.LENGTH_SHORT).show();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

SharedPreference存储

说明:

  不同于文件的存储方式,ShardPreference是使用键值对的方式来存储数据的。您可以使用 SharedPreferences 来保存任何原始数据:布尔值、浮点值、整型值、长整型和字符串。 此数据将跨多个用户会话永久保留(即使您的应用已终止亦如此)。

获取SharedPreferences对象:

  • getSharedPreferences() - 如果您需要多个按名称(使用第一个参数指定)识别的首选项文件,请使用此方法。
  • getPreferences() - 如果您只需要一个用于 Activity 的首选项文件,请使用此方法。 由于这将是用于 Activity 的唯一首选项文件,因此无需提供名称。也就是说会把当前活动的类名作为文件名。

写入值:

  1. 调用 edit() 以获取 SharedPreferences.Editor
  2. 使用 putBoolean() 和 putString() 等方法添加值。
  3. 使用 commit() 提交新值

读入值:

  要读取值,请使用 getBoolean() 和 getString() 等 SharedPreferences 方法。

通用代码

    public void save2()
    {
        SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();
        editor.putString("name","Tom");
        editor.putInt("age",20);
        editor.apply();
    }

    public void read2()
    {
        SharedPreferences sharedPreferences = getSharedPreferences("data",MODE_PRIVATE);
        Log.d("StoreActivity",sharedPreferences.getString("name",""));
        Log.d("StoreActivity",""+sharedPreferences.getInt("age",100));
        
    }

SQLite数据库存储

 

 

Android:日常学习笔记(9)———探究持久化技术