Android:日常学习笔记(9)———探究持久化技术
引入持久化技术
什么是持久化技术
持久化技术就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失。
Android系统提供的三种持久化技术:
文件存储、SharedPreference(使用共享首选项)存储以及数据库存储。
文件存储
说明:
您可以直接在设备的内部存储中保存文件。默认情况下,保存到内部存储的文件是应用的私有文件,其他应用(和用户)不能访问这些文件。 当用户卸载您的应用时,这些文件也会被移除。
要创建私有文件并写入到内部存储:
- 使用文件名称和操作模式调用
openFileOutput()
。 这将返回一个FileOutputStream
。- 使用
write()
写入到文件。- 使用
close()
关闭流式传输。要从内部存储读取文件:
- 调用
openFileInput()
并向其传递要读取的文件名称。 这将返回一个FileInputStream
。- 使用
read()
读取文件字节。- 然后使用
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 的唯一首选项文件,因此无需提供名称。也就是说会把当前活动的类名作为文件名。写入值:
- 调用
edit()
以获取SharedPreferences.Editor
。- 使用
putBoolean()
和putString()
等方法添加值。- 使用
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数据库存储
时间: 2024-10-16 02:44:27