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();
相关推荐
NULL 博文链接:https://15035554141.iteye.com/blog/2095047
Android 数据存储与读取,操作Sqlite数据库
针对第三方 SDK 乱改存储卡和读取用户数据等行为,利用反射方式重定向 SD 卡目录。
Android开发时,需要把数据存储在Excel文件中,并且用时还可以读取。支持大数据的存储和读取。
Android应用源码之数据的储存与读取
一个关于android数据使用的小项目,本来我是用IO流的,但是android2.3很多函数对空格有编译,io流并不是varchar那样的(也可能是我不会),所以很多IO出来的字符串用到函数里都会出现差异。 被逼无奈啊。。 才用了...
解决添加联系人的表中添加数据以及读取已保存的数据 3. 实现通讯录的基本功能的具体实现。 4. 对通讯录界面的具体设计,给人一种方便的操作通道。 5. 灵活应用各种系统库函数实现完整的通讯录。 Android开发实验---...
实验报告封面 课程名称: Android平台开发与应用 课程代码: SM3004 任课老师: 梁郁君 实验指导老师: 梁郁君 实验报告名称:实验10 Android数据存储与IO 学生姓名: 学号: 教学班: 递交日期: 签收人: 我申明,...
数据存储
安卓Android源码——数据的储存与读取.zip
Android应用源码之数据的储存与读取.zip
android 使用SharedPreferences对数据存储/删除/读取/文件删除
雨松MOMO带你做软件 Android软件开发之数据的新建 储存 读取 删除源码 欢迎大家下载阅读。
本文实例为大家分享了Android读取XML文件中数据的具体代码,供大家参考,具体内容如下 读取XML中存储的数据。将xmlfile.xml存放在assets文件夹中。在activity_main.xml中创建一个textview,用来显示读取到的数据。 ...
layout9为SharedPreferences数据存储和读取功能应该的一个关于记住密码功能实例。 layout11为SharedPreferences的数据存储和读取实例。
我以前以为数组适配器是功能很小,现在我发现了数组适配器能动态添加数据,这是一个不错的选择
我们在使用ListView的时候需要和数据进行绑定,那么问题来了,如何获取SQLite数据库中的数据并动态的显示到ListView当中呢?其实过程很简单:首先要获取SQLite数据(当然首先你要创建一个SQLite数据库并填写了一些...
一个读取Excel文档,将数据存入map集合的方法
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 ...• SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和...
典型的桌面操作系统提供一种公共文件系统——任何应用软件可以使用它来存储和读取文件,该文件也可以被其他的应用软件所读取(会有一些权限控制设定)。Android采用了一种不同的系统,在Android中,所有的应用软件...