`
2277259257
  • 浏览: 520492 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android----数据存储与读取

 
阅读更多

Android有四种数据存储与读取:Preferences/Files/Databases/Network/ContentProvider

1、Preferences----是一个轻量级的存储数据方法

在A中保存数据:
SharedPreferences.Editor  sharedata = getSharedPreferences("data" , 0).edit();
sharedata.putString("name" , "shenrenkui");
sharedata.commit();

在B中取数据:
SharedPreferences  sharedata = getSharePreferences("data" , 0);
String  data = sharedata.getString("name" , null);
Log.i(TAG , "data="+data);

 注意:Context.getSharedPreferences(String  name , int type)的参数和我们在创建数据权限属性是一样的,存储和取值的过程有点像HashMap但是比HashMap更具人性化,getXXX(Object  key ,Object  defultReturnValue),第二个参数是当你所要的key对应没有时候返回的值,这就省去了很多逻辑判断。。。

 

2、Files

file = new File(FILE_PATH , FILE_NAME);
file.createNewFile();

//打开文件file的OutputStream
out = new FileOutputStream(file);
String  infoToWrite = "纸上得来终觉浅,绝知此事要躬行";

//将字符串转换成byte数组写入文件
out.write(infoToWrite.getBytes());

//关闭文件file的OutputStream
out.close();

//打开文件file的InPutStream
in = new FileInputStream(file);

//将文件内容全部读入到byte数组
int  length = (int)file.length();
btye[] temp = new byte[length];
in.read(temp , 0 ,length);

//将byte数组用UTF-8编码并存入display字符串中
display = EncodingUtils.getString(temp , TEXT_ENCODING);

//关闭文件file的InpytStream
in.close();
}catch(IOException  e) {
       //将出错信息打印到Logcat
       Log.e(TAG , e.toString());
       this.finish();
}

//从资源读取
InputStream  is = getResources().getRawResource(R.raw.文件名)

 3、Databases
Android内嵌了功能比其他手机操作系统强大的关系型数据库SqlSite,我们自己创建的数据可以用adb shell来操作
具体路径是/data/data/package_name/databases
一、SQLite数据库支持null,Integer,real,text,blod(二进制数据)五种数据类型。但有一种情况例外:定义为Integer  primary key的字段只能存储64位整数,当向这种字段保存除整数以外的数据时,将会产生错误,另外,SQLite在解析Create Table语句时,会忽略create table语句中跟在字段后面的数据类型信息
二、在程序初始化时候,必须先建立数据库以对数据库进行更新,所以这里需要继承一个SQLiteOpenHelper抽象类,这里有两个方法onCreate(),onUpgreade()两个方法,前者用来创建数据库及对数据库的一些初始化操作,后者是当数据库版本进行更新时候用。
例子:创建一个数据库名nyist,版本为1的数据库,并在数据库中创建一个person表,这里利用了构造函数传入了数据库名和版本常量,参数为Context。

public  class  DatebaseHelper  extends  SQLiteHelper{
         public  final  static  String  NAME="nyist";
         public  final  static  int  	VERSION=1;
         public  DatebaseHelper(Context  context){
	super(context ,NAME, null ,VERSION);
         }
         public  void  onCreate(SQLiteDatabase  db){
	db.execSQL("CREATE  TABLE  person (personid  integer  primary  key  autoincrement, name  varchar(20) ,age  integer)");
         }
         public  void  onUpgrade(SQLiteDatabase  db , int  oldVersion ,int  newVersion){
	db.execSQL("DROP  TABLE  IF  EXISTS  person");
	onCreate(db);
          }
}

 

 

 

//定义数据库
SQLiteDatabase  myDB = null;
//打开或建立数据库(当数据库不存在时,自动创建)
myDB = this.openOrCreateDatabase("MY_DATABASE_NAME", "MODE_PRIVATE", null);
//删除表 、新建表、插入数据、更新数据
myDB.execSQL("...标准的SQL语句...;");

//查询比较麻烦
Crusor  c = myDB.rawQuery("SELECT  id ,name , tel  FROM  MY_DATABASE_TABLE  WHERE age >1 order by age;" , null);
if(c != null){
   if(c.moveToFirst()){
         do{
	Log.w("test" , "id="+c.getString(c.getColumnIndex("id")));
	Log.w("test" , "name="+c.getString(c.getColumnIndex("name")));
	Log.w("test" , "tel="+c.getString(c.getColumnIndex("tel")));
         }while(c.moveToNext());
   }
}
c.close();
//关闭数据库
myDB.close();

 

 

 

 

 

分享到:
评论

相关推荐

    谷歌开源的串口类android-serialport-api

    2. **数据读取与写入**:`android-serialport-api`提供了读取和写入数据的API。`SerialPort.readBytes()`用于接收串口数据,通常会返回一个包含接收到的字节的数组。`SerialPort.write(buffer, length)`则可以将数据...

    android-plist-parser-master

    在Android开发中,有时我们需要与iOS应用进行交互,或者处理从iOS系统接收的数据。iOS应用通常使用`plist`(Property List)文件格式来存储配置、元数据或简单数据结构。`android-plist-parser-master`是一个专门...

    android-smart-image-view.zip

    在优化方面,`android-smart-image-view`支持图片的缓存机制,可以将加载过的图片存储在内存或磁盘中,下次加载时直接从缓存读取,显著提高加载速度。此外,还可以通过设置加载策略,如优先从网络加载还是本地缓存...

    android-database-sqlcipher-v3.5.7 Android安卓数据库加密开源项目

    2. **数据存储**:每当有数据写入数据库时,SqlCipher会先加密数据,然后将其写入磁盘。 3. **数据读取**:读取数据时,SqlCipher会解密从磁盘中读取的数据,再返回给应用程序。 4. **安全性**:由于加密过程完全...

    android-数据存储(保存读取密码-附源码)

    在Android开发中,数据存储是不可或缺的一部分,...总之,这篇博文和源码提供了关于Android应用中安全存储和读取密码的方法,通过学习和实践,开发者可以更好地理解和掌握Android数据存储的策略,提高应用的安全性。

    opencv-4.4.0-androidopencv-4.5.0-android-sdk

    例如,`imread()`用于加载图片,`imshow()`用于显示图像,`Mat`类用于存储图像数据,以及`Core`模块中的矩阵运算等。 3. **图像处理**:OpenCV支持丰富的图像处理函数,如灰度化、直方图均衡化、边缘检测(Canny、...

    android-gpx-parser,一个解析XML GPX文件的库,为Android构建。.zip

    **Android GPX Parser库详解** ...总之,`android-gpx-parser`是一个实用的工具,它简化了Android应用中处理GPX文件的过程,为开发者提供了高效、灵活的解决方案,促进了GPS数据在Android应用中的广泛应用。

    Android----文件的保存与读取

    在Android平台上,文件的保存与读取是移动应用开发中不可或缺的部分。无论是用户数据的持久化存储、资源文件的管理还是日志记录,都离不开文件操作。以下将详细讲解Android中如何进行文件的保存和读取。 首先,...

    android-Camera2Basic-master源码

    5. **处理图像**:`ImageReader`的`onImageAvailable`回调中,读取图像数据,通过`ImageSaver`保存到文件系统。 五、源码中的优化与注意事项 1. **权限管理**:确保在运行时获取了`Manifest.permission.CAMERA`...

    ksoap2-android-assembly-2.5.8-jar-with-dependencies.jar

    尤其是在网络传输和存储时,如何有效地压缩图片以减少数据量,同时保持图片质量,是一个重要的技术挑战。ksoap2-android-assembly-2.5.8-jar-with-dependencies.jar是一个专门针对这个问题的解决方案,它提供了一种...

    android-backup-tookit20191223.zip

    在Android开发过程中,数据备份和恢复是至关重要的环节,尤其是对于...总的来说,"android-backup-tookit" 是一款强大的Android数据备份解决方案,它大大简化了开发流程,提高了开发效率,同时确保了用户数据的安全性。

    android-pdfview eclipse可用

    这里的`fromAsset()`方法指定了PDF文件的路径,你可以根据实际情况调整,如从网络下载或本地存储读取。 4. **自定义配置**: - `android-pdfview`提供了丰富的API,可以进行页面缩放、平移、双页模式等设置。例如...

    android持久化 ormlite-android-4.31.jar

    - **自动序列化**:支持对象的序列化和反序列化,方便数据的存储和读取。 - **多线程安全**:ORMLite库是线程安全的,可以在多线程环境中放心使用。 4. **ORMLite的局限与优化**: - **性能**:相比于原生的SQL...

    android-database-sqlcipher-master.zip

    在Android开发中,数据存储是不可或缺的一部分,而SQLCipher则为Android提供了一种安全的方式来存储敏感数据。SQLCipher是一个开源的SQLite数据库加密扩展,它允许开发者对SQLite数据库进行透明的加密,确保数据在...

    Android-sqlite-android一个AndroidSQLite支持库

    在Android应用开发中,SQLite是一个内置的轻量级数据库,用于存储应用程序的数据。SQLite支持标准的关系型数据库功能,如创建、查询、更新和删除数据,是Android应用进行本地数据持久化的重要工具。`sqlite-android`...

    opencv-3.4.2-android-sdk.zip

    例如,`cv::imread()`用于读取图像,`cv::imshow()`显示图像,`cv::Mat`对象用于存储和操作图像数据,`cv::blur()`或`cv::GaussianBlur()`进行图像平滑处理,`cv::Canny()`用于边缘检测。 **5. 机器学习与计算机...

    Android-FilePicker一个Android文件选择器

    在Android应用开发中,有时我们需要提供给用户选择文件或目录的功能,例如在上传附件、保存数据或读取本地资源时。这时,一个良好的文件选择器就显得尤为重要。Android-FilePicker正是这样一个专为Android平台设计的...

    03课件-BTC-Android-01-第11章-Android-数据存储之文件存储(ppt课件)(ppt-课件).ppt

    文件存储是另一种常见的Android数据存储方式,适合大量结构化或非结构化数据的存储。Android提供了多种文件操作API,如`openFileInput()`和`openFileOutput()`,可以用来读写文件。文件存储分为内部存储和外部存储:...

    ros-android-hello

    在Android项目中,你可能需要在代码中读取或修改这些配置,以便调整节点行为。 4. **连接ROS Master**:在Android设备上运行ROS,首先要确保设备能够连接到ROS Master,通常是通过WiFi或USB连接到运行ROS的主机。...

    android-database-sqlcipher-v3.3.1 sqllite加密so包

    通过使用SQLCipher,开发者可以确保他们的Android应用不仅具备高效的数据存储能力,同时还能提供高级别的数据安全防护。然而,需要注意的是,虽然SQLCipher加强了数据库的安全性,但并不能完全替代整体安全策略,...

Global site tag (gtag.js) - Google Analytics