数据存储

这篇博客探讨了Android中的数据存储方式,包括文件存储、SharedPreferences和SQLite数据库。文件存储分为内部和外部存储,SharedPreferences适合存储配置信息,而SQLite用于复杂数据存储。文中还以绿豆通讯录为例,介绍了如何在实际应用中实现数据的增删查改操作。
摘要由CSDN通过智能技术生成

数据存储方式

  • 文件存储:Android提供了openFileInput()和poenFileOutput()方法来读取设备上的文件,其读取方式与Java中I/O程序是完全一样的
  • SharedPreferences:这是Android提供的用来存储一些简单的配置信息的一种机制,它采用了XML格式将数据存储到设备中。通常情况下,我们使用SharedPreferences存储一些应用程序的各种配置信息,如用户名、密码等
  • SQLite数据库:SQLite是Android自带的一个轻量级数据库,它运算速度快,占用资源少,还支持基本SQL语法,一般使用它作为复杂数据的存储引擎,可以存储用户信息等
  • ContentProvider:Android四大组件之一,主要用于应用程序之间的数据交换,它可以将自己的数据共享给其他应用程序使用
  • 网络存储:需要与Android网络数据包打交道,将数据存储到服务器上,通过网络提供的存储空间来存储/获取数据信息

一、文件存储

  1. 将数据存入文件中
    (1)内部存储
    内部存储是指将应用程序中的数据以文件的形式存储到应用中,此时存储的文件会被其所在的应用程序私有化,如果应用程序想要操作本应用程序中的文件,则需要设置权限。当创建的应用程序被卸载时,其内部存储文件也随之被删除
    (2)外部存储
    外部存储是指数据以文件的形式存储到一些外部设备上,例如SD卡或设备内嵌的存储卡,属于永久性的存储方式。外部存储的文件可以被其他应用程序所共享,当将外部存储设备连接到计算机时,这些文件可以被浏览、修改和删除,因此这种方式不安全

  2. 从文件中读取数据

  • 读取内部存储中的文件数据
String content=""
FileInputStream fis = null;
try{
   
	fis = openFileInput("data.txt");//获取文件输入流对象
	byte[] buffer = new byte[fis.available()];//创建缓冲区,并获取文件长度
	fis.read(buffer);
	content = new String(buffer);//转换为字符串
}catch(Exception e){
   
	e.printStackTrace();
}finally{
   
	try{
   
		if(fis!=null){
   
			fis.close();
		}
	}catch(IOException e){
   
		e.printStackTrace();
	}
}

首先通过openFileInput()方法获取到文件输入流对象,然后通过available()方法获取文件的长度并创建相应大小的byte数组作为缓冲区,再通过read()方法将文件内容读取到buffer缓冲区中,最后将读取到的内容转换成指定字符串

  • 读取外部存储中的文件数据
String state = Environment.getExternalStorageState();
if(state.equals(Environment.MEDIA_MOUNTED)){
   
	File SDPath = Environment.getExternalStorageDirectory();//获取SD卡路径
	File file = new File(SDPath,"data.txt");//创建文件对象
	FileInputStream fis = null;
	BufferReader br = null;
	try{
   
		fis = new FileInputStream(file);//创建文件输入流对象
		//创建字符输入缓冲流的对象
		br = new
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值