安卓数据存储详解-孙霞霞著
简述android中的5种数据存储方式。
简述android中的5种数据存储方式。
在Android中,我们可以使用以下5种数据存储方式:
1. SharedPreferences: SharedPreferences是一种轻量级的数据存储方式,用于存储小量的键值对数据,比如应用程序的配置信息等。
2. SQLite数据库:SQLite是一个轻量级的关系型数据库,它提供了一种简单的方法来存储和检索数据。
3. 文件存储:我们可以将数据存储在Android设备的内部存储或外部存储设备中,比如SD卡等。
4. ContentProvider:ContentProvider是Android中的一个组件,它提供了一种标准的接口来访问应用程序中的数据。
5. Network Data:Android应用程序可以通过网络连接获取和存储数据,比如使用HTTP协议来下载数据,或者使用云存储服务来保存数据。
- 1 -。
Android中5种数据存储方式
Android中5种数据存储方式1概述SharedPreferences存储数据。
ContentProvider存储文件存储SQLlite存储网络存储Preference,File,DataBase这三种方式分别对应的目录是:●/data/data/Package Name/Shared_Pref●/data/data/Package Name/files●/data/data/Package Name/database关于这五种数据存储方式,根据实际情况选择最合适的,秉持最简单原则,也就是说能用简单的方式处理,就不要用复杂的方式。
比如存储几个数据或简单对象,用SharedPreference也能做到,就没必要写个ContentProvider。
●简单数据和配置信息,SharedPreference是首选;●如果SharedPreferences不够用,那么就创建一个数据库;●结构化数据,一定要创建数据库,虽然这稍显烦锁,但是好处无穷;●文件就是用来存储文件(也即非配置信息或结构化数据),如文本文件,二进制文件,PC文件,多媒体文件,下载的文件等等;●尽量不要创建文件;●如果创建文件,如果是私密文件或是重要文件,就存储在内部存储,否则放到外部存储。
2SharedPreferences存储数据SharedPreferences 可以将数据保存到应用程序的私有存储区,这些存储区中的数据只能被写入这些数据的软件读取。
它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。
其存储位置在/data/data/<包名>/shared_prefs 目录下。
使用SharedPreferences是有些限制的:只能在同一个包内使用,不能在不同的包之间使用。
例如:登录用户的用户名与密码。
步骤如下:(1)使用Activity类的getSharedPreference 方法获得SharePreferences对象。
《Android应用开发》课件——第5章 数据存储
File SDPath = Environment.getExternalStorageDirectory();
File file = new File(SDPath, "data.txt");获取SD卡目录
String data = "HelloWorld";
FileOutputStream fos = new FileOutputStream(file);
注意:Android系统有一套自己的安全模型,默认情况下任何应用创 建的文件都是私有的,其他程序无法访问。
✎
5.2.1 将数据存入到文件中
内部存储
String fileName = "data.txt";
// 文件名称
String content = "helloworld";
// 保存数据
FileOutputStream fos = openFileOutput(fileName, MODE_PRIVATE);
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
动态申请权限的方法
外部存储 ✓ 存储位置
将数据以文件的形式存储到外部设备上。
✓ 存储位置
mnt/sdcard/目录下。
✓ 其它应用操作该文件时
不用设置权限,会被其它应用共享
✓ 删除文件
该文件可在本应用外删除,使用前需要 确认外部设备是否可用
✓ 删除文件
直接使用FileOutputStream和 FileInputStream操作对象
Android操作系统与应用开发第5章
第5章 Android数据存储
实际上SharedPreferences是采用xml文件格式将数据存储
到设备中的,文件存放在File Explorer中的
/data/data/<package name>/shares_prefs目录下。如果希望
SharedPreferences使用的xml文件能被其他应用读和写,则可 以指定Context.MODE_WORLD_READABLE和 Context.MODE_WORLD_WRITEABLE权限。
第5章 Android数据存储
button.setOnClickListener(new Button.OnClickListener()
{ @Override public void onClick(View v) { //这部分是自动产生方法桩 try {
//写入数据
第5章 Android数据存储
第5章 Android数据存储
一个实现SharedPreferences存储的实例代码如下:
//获取SharedPreferences对象 SharedPreferences user = getSharedPreferences(“user_info”, MODE_PRIVATE); //存入数据 Editor editor = user.edit(); editor.putString(“NAME”, “hello”);
(当然不是真的SD卡,只是镜像文件)。创建SD卡可以在
Eclipse创建模拟器时随同创建,也可以使用DOS命令进行创
建,操作方法如下: 在DOS窗口中进入Android SDK安装路径的tools目录, 输入以下命令创建一张容量为2 GB的SD卡(文件后缀可以随 便取,建议使用.img): mksdcard 2048M D:\AndroidTool\sdcard.img
Android数据存储五种方式总结(DOC)
Android数据存储五种方式总结本文介绍Android平台进行数据存储的五大方式,分别如下:1 使用SharedPreferences存储数据2 文件存储数据3 SQLite数据库存储数据4 使用ContentProvider存储数据5 网络存储数据下面详细讲解这五种方式的特点第一种:使用SharedPreferences存储数据适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。
比如应用程序的各种配置信息(如是否打开音效、是否使用震动效果、小游戏的玩家积分等),解锁口令密码等核心原理:保存基于XML文件存储的key-value键值对数据,通常用来存储一些简单的配置信息。
通过DDMS的File Explorer面板,展开文件浏览树,很明显SharedPreferences数据总是存储在/data/data/<package name>/shared_prefs目录下。
SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过SharedPreferences.edit()获取的内部接口Editor 对象实现。
SharedPreferences本身是一个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name, int mode)方法来获取SharedPreferences实例,该方法中name表示要操作的xml文件名,第二个参数具体如下:Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写。
Context.MODE_WORLD_READABLE: 指定该SharedPreferences数据能被其他应用程序读,但不能写。
Context.MODE_WORLD_WRITEABLE: 指定该SharedPreferences数据能被其他应用程序读,写Editor有如下主要重要方法:SharedPreferences.Editor clear():清空SharedPreferences里所有数据SharedPreferences.Editor putXxx(String key , xxx value):向SharedPreferences存入指定key对应的数据,其中xxx 可以是boolean,float,int等各种基本类型据SharedPreferences.Editor remove():删除SharedPreferences中指定key对应的数据项boolean commit():当Editor编辑完成后,使用该方法提交修改实际案例:运行界面如下这里只提供了两个按钮和一个输入文本框,布局简单,故在此不给出界面布局文件了,程序核心代码如下:class ViewOcl implements View.OnClickListener{@Overridepublic void onClick(View v) {switch(v.getId()){case R.id.btnSet://步骤1:获取输入值String code = txtCode.getText().toString().trim();//步骤2-1:创建一个SharedPreferences.Editor接口对象,lock表示要写入的XML 文件名,MODE_WORLD_WRITEABLE写操作SharedPreferences.Editor editor = getSharedPreferences("lock",MODE_WORLD_WRITEABLE).edit();//步骤2-2:将获取过来的值放入文件editor.putString("code", code);//步骤3:提交mit();Toast.makeText(getApplicationContext(),"口令设置成功",Toast.LENGTH_LONG).show();break;case R.id.btnGet://步骤1:创建一个SharedPreferences接口对象SharedPreferences read = getSharedPreferences("lock",MODE_WORLD_READABLE);//步骤2:获取文件中的值String value = read.getString("code", "");Toast.makeText(getApplicationContext(),"口令为:"+value,Toast.LENGTH_LONG).show();break;}}}读写其他应用的SharedPreferences: 步骤如下1、在创建SharedPreferences时,指定MODE_WORLD_READABLE模式,表明该SharedPreferences数据可以被其他程序读取2、创建其他应用程序对应的Context:Context pvCount = createPackageContext("com.tony.app", Context.CONTEXT_IGNORE_SECURITY);这里的com.tony.app就是其他程序的包名3、使用其他程序的Context获取对应的SharedPreferencesSharedPreferences read = pvCount.getSharedPreferences("lock", Context.MODE_WORLD_READABLE);4、如果是写入数据,使用Editor接口即可,所有其他操作均和前面一致。
Android五种数据存储方式
Android五种数据存储⽅式android 五种数据存储:SharePreferences、SQLite、Contert Provider、File、⽹络存储Android系统提供了四种存储数据⽅式。
分别为:SharePreference、SQLite、Content Provider和File。
但由于Android系统中,数据基本是私有的,都是存放于”data/data”程序包名⽬录下,所以要实现数据共享,正确⽅式是使⽤Content ProviderSQLite:SQLite是⼀个轻量级的数据库,⽀持基本的SQL语法,是常被采⽤的⼀种数据存储⽅式。
Android为此数据库提供了⼀个名为SQLiteDatabase的类,封装了⼀些操作数据库的apiSharedPreference:除SQLite数据库外,另⼀种常⽤的数据存储⽅式,其本质就是⼀个xml⽂件,常⽤于存储较简单的参数设置。
File:即常说的⽂件(I/O)存储⽅法,常⽤语存储⼤数量的数据,但是缺点是更新数据将是⼀件困难的事情。
ContentProvider: Android系统中能实现所有应⽤程序共享的⼀种数据存储⽅式,由于数据通常在各应⽤间的是互相私密的,所以此存储⽅式较少使⽤,但是其⼜是必不可少的⼀种存储⽅式。
例如⾳频,视频,图⽚和通讯录,⼀般都可以采⽤此种⽅式进⾏存储。
每个Content Provider都会对外提供⼀个公共的URI(包装成Uri对象),如果应⽤程序有数据需要共享时,就需要使⽤Content Provider为这些数据定义⼀个URI,然后其他的应⽤程序就通过Content Provider传⼊这个URI来对数据进⾏操作。
URI由3个部分组成:"content://"、数据的路径、标识ID(可选)。
1)SQLite数据存储======================================================================SQLite是⼀种转为嵌⼊式设备设计的轻型数据库,其只有五种数据类型,分别为:NULL:空值INTEGER:整数REAL:浮点数TEXT:字符串BLOB:⼤数据在SQLite中,并没有专门设计BOOLEAN和DATE类型,因为BOOLEAN型可以⽤INTEGER的0和1代替true和false,⽽DATE类型则可以拥有特定格式的TEXT、REAL和INTEGER的值来代替显⽰,为了能⽅便的操作DATE类型,SQLite提供了⼀组函数,在Android系统中提供了anroid.database.sqlite包,⽤于进⾏SQLite数据库的增,删,改,查⼯作,其主要⽅法如下: beginTransaction(): 开始⼀个事务。
彻底搞懂Android文件存储---内部存储,外部存储以及各种存储路径解惑
彻底搞懂Android⽂件存储---内部存储,外部存储以及各种存储
路径解惑
疑问3、什么是APP专属⽂件?
上⾯疑问2我们提到了专属⽂件,所谓专属⽂件就是它是属于某个具体的应⽤的,他的⽂件路径都带有相应的包名,当APP卸载时,它们会随应⽤⼀起删除,当我们在设置⾥⾯⼿动清除某个应⽤数据时(不是清除缓存),它们也会⼀起被清掉。
Android使⽤这种专属⽂件的⽬的就是为了⽅便⽂件管理,避免⽂件随意存储,显得很乱,另⼀个⽬的就是为了当应⽤被卸载时不会留下很多垃圾⽂件。
疑问4、既然内部存储与外部存储都有APP专属⽂件,那么我们该使⽤哪个呢?
内部存储与外部存储都有APP专属⽂件,我们该⽤哪个呢,很显然应该⽤外部存储的,因为内部存储本⾝就⽐较⼩,⽽且已经存储了⼀些系统的⽂件,因此内部存储我们尽量不要去使⽤。
但是当⼿机没有外部存储时,我们还是得使⽤内部存储,⼀般程序员会做判断是否有外部存储,没有再使⽤内部存储,。
Android平台应用软件开发课件:数据存储
数据存储
而网络数据的存储,则很好地解决了本地存储所存在的 缺陷。将数据存储在网络中,用户更换手机也不会造成数据 的丢失,用户也不能随意的编辑数据,可以使数据的完整性 和安全性得到很大的提升。但凡事有利弊,将数据存储在网 络中意味着需要不停的访问服务器,会造成手机电量和流量 的快速消耗。作为开发者,需要在两者之间取一个平衡点, 以达到数据的最优存储。
commit(): 当Editor指定的数据完成后,使用该方法提交 数据,即真正存入文件中。
数据存储
6.1.2 SharedPreferences存储数据的实现 利用SharedPreferences方式存取数据的步骤如下: 第一步,通过上下文Context获取SharedPreferences对象; 第二步,如果存放数据,则先要利用edit()方法获取
数据存储
6.5 项 目 演 练
6.5.1 项目分析 创建Android项目SavaData,我们来制作一个记账本的
小项目,来将本节的内容做一个整合。先来分析一下这个项 目:实现记账本,那么必须要保存支出消费记录;需要记录 账目的类型,是支出还是收入;需要记录账目本次资金流动 的大小;需要记录创建的时间;可能还会有一些备注信息。
数据存储
6.5.2 项目创建步骤 创建项目的步骤: (1) 数据库的结构已经分析完成,已经知道数据库中的
字段有id,记录的创建时间,消费的类型,消费的金额,消 费的备注。
数据存储
4.数据查询 查询操作相对于上面的几种操作要复杂些,因为我们经 常要面对着各种各样的查询条件,所以系统也考虑到这种复 杂性,为我们提供了较为丰富的查询形式
数据存储
代码示例中,已经用到了这几个常用方法中的一些,在 具体使用的过程中,可以根据需要选择不同的方法进行应用。
Android开发中的数据存储技术及优缺点分析
Android开发中的数据存储技术及优缺点分析近年来,随着移动互联网的普及和智能手机愈发强大,Android 平台上的应用程序也越来越受到用户追捧。
在Android开发中,数据存储技术是一个至关重要的方面,它直接关乎着程序的性能、稳定性和用户体验。
本文将对Android开发中的数据存储技术进行分析,探讨其优缺点。
一、数据存储的重要性在移动应用开发中,数据存储是非常重要的。
相信若是使用过APP的用户都会有这样的经历:每当重新安装一个APP或者升级之后,之前存储的数据就会丢失或者被清空。
这样一来,用户必须重新填写一些基本信息,比如用户名、密码等,使用感受非常差,这就是数据存储重要的原因之一。
而对于开发人员来说,若是不使用数据存储技术,那么当用户切换页面或者退出应用程序的时候,所有的数据都会被销毁,无法保存。
这时,我们往往需要将数据存储在设备的本地文件或者数据库中,这样就可以保证数据的安全性和完整性,也可以为用户提供更好的使用体验。
二、Android中的数据存储方式在Android平台中,开发人员可以通过多种方式进行数据存储,比如Shared Preferences、SQLite数据库、文件存储或者网络存储等。
接下来,我们将对其中的四种数据存储方式进行详细的分析。
1.Shared PreferencesShared Preferences,即共享首选项,是一种简单且轻量级的Android数据存储方式。
可以将Shared Preferences看作是一种小型的本地数据库,它可以将APP所需的小量数据保存在其中,如用户的账号信息、应用程序调试模式状态等等。
Shared Preferences的优点:(1)提高了用户体验:Shared Preferences支持键值对的方式存储数据,在某些场景下,我们可以直接读取Shared Preferences中的数据,减少了用户的等待时间。
(2)轻量级数据库:位于APP内部,不会影响外部系统,不需要读写文件,同时也可以进行数据的跨进程、跨应用程序之间的共享。
第六章 Android数据存储
Android数据基本存储方式 数据基本存储方式--Files 数据基本存储方式
File的写操作(以读一个TXT文档为例): private final String FILE_NAME = "/mnt/sdcard/tempfile.txt";//确定要操作文 确定要操作文 件的文件名 File file = new File(FILE_NAME); //获取文件输出流 FileOutputStream fos = new FileOutputStream(file); //将文本框中的内容写入文件 fos.write(et.getText().toString().getBytes());fos.flush(); fos.close();
Share Preferences用例展示 用例展示
然后在class文件中对编辑框里的值进行操作(存储或者读取),代码见 备注: ① SharedPreferences是以xml的格式、文件的方式将需要保存的值自动 保存。 ② SharedPreferences只能在同一个package里面使用,不是在不同的 package之间使用
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="SQLite基本操作"/> <Button android:text="增 | insert" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dip" android:layout_marginTop="5dip" android:minWidth="200dip"></Button> <Button android:text="删 | delete" android:id="@+id/Button02" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="改 | update" android:id="@+id/Button03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dip" android:layout_marginTop="5dip" android:minWidth="200dip"></Button>
Android开发中的数据存储技术研究
Android开发中的数据存储技术研究随着移动互联网和智能手机的普及,人们对于手机应用程序的需求越来越高,要求对手机数据进行高效、安全的存储和管理。
而Android作为最广泛使用的移动操作系统之一,其数据存储技术也成为我们开发人员必须熟练掌握的内容之一。
本文将重点探讨在Android开发中的数据存储技术,希望能够为开发人员提供一些有价值的参考。
一、 SQLite数据库SQLite数据库是一种轻量级的数据库管理系统,应用广泛,包括了操作系统、Web浏览器、工具软件等等。
在Android开发中,SQLite数据库也是常用的数据存储技术。
使用SQLite数据库,我们可以方便地进行本地数据的存储和管理,应用场景很多。
1.1 SQLite的基本概念在使用SQLite数据库之前,我们需要先了解一些基本概念。
下面介绍三个基本概念:表、行、列。
表:SQLite中的表与其他数据库类似,是一种数据结构,用于存储数据。
表由行和列组成,行表示一个条目,列是条目中的一个字段。
行(Record):SQLite中的行与表中的行类似,它是一种数据结构,表示表中的一条纪录。
行的数量表示表中数据的数量。
列(Field):SQLite中的列与表中的列类似,它是一种数据结构,表示表中的一个字段。
列的数量代表了表的属性数量。
1.2 SQLite的使用在Android中使用SQLite通常需要进行以下步骤:1.创建数据库在Android中创建一个SQLite数据库其实就是创建一个SQLiteOpenHelper对象。
在该对象中,我们需要实现其构造函数、onCreate()和onUpgrade()等方法,并在onCreate()方法中创建数据库,数据表和数据默认记录。
2.插入数据在SQLite中插入数据通常需要使用insert()方法,而该方法需要传入数据库名以及一个ContentValues类型的参数,ContentValues是用来存储数据的类。
11_Android数据存储1
IT教育成就人生
代码编辑
/* 装载、读取数据 */ void load(){ /* 构建Properties对对象 */ Properties properties = new Properties(); try{ /* 打开文件 */ FileInputStream stream = this.openFileInput("music.cfg"); /* 读取文件内容 */ properties.load(stream); } catch (FileNotFoundException e){ return; } catch (IOException e){ return; } /* 取得数据 */ mbMusic = Boolean.valueOf(properties.get("bmusic").toString()); }
IT教育成就人生
பைடு நூலகம்
IT教育成就人生
Shared Preferences Files SQLite NetWork
IT教育成就人生
Android中4种数据存储方式
Shared Preferences
Shared Preferences 主要是针对系统配置信息的保存,比如给程序界 面设置了音效,想在下一次启动的时候还能够保留上一次设置的音效。 由于Android系统的界面是采用Activity栈的形式,所以在系统资源不 足时会收回一些界面,因此,有些操作要在不活动时保留下来,以便再 次激活的时候能够显示出来。
Files
Files就是把需要保存的东西通过文件的形式记录下来,当需 要这些数据的时候,通过读取这个文件来获得这些数据即可。 因为Android采用了Linux核心,所以在Android系统中, 文件也是Linux的形式。
android开发教材----22.数据存储(1)
4.TEXT:字符串文本。
5.BLOB:二进制对象。
Demo
CREATE TABLE table ( a VARCHAR(10), b NVARCHAR(15), c TEXT,
d INTEGER,
e FLOAT,
f BOOLEAN,
g Cபைடு நூலகம்OB,
h BLOB,
i TIMESTAMP,
j NUMERIC(10,5),
k VARYING CHARACTER (24),
l NATIONAL VARYING CHARACTER(16)
);
基本SQL命令
create insert update select
delete
order by group by having limit
什么是SQLite
SQLite数据类型
一般数据采用的固定的静态数据类型,而SQLite采用的是动态数 据类型,会根据存入值自动判断。SQLite具有以下五种数据类 型: 1.NULL:空值。
2.INTEGER:带符号的整型,具体取决有存入数字的范围大小。
3.REAL:浮点数字,存储为8-byte IEEE浮点数。
第二十二课:数据存储(1)
Android数据存储方式
1.SQLite数据库 2.文件 3.Shared Preferences 4.内容提供者(Content Providers) 5.网络
SQLite,是一款轻型的数据库,它的设计目标是嵌入式的,而且目 前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在 嵌入式设备中,可能只需要几百K的内存就够了。它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程 序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口, 同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管 理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版 本诞生于2000年5月. 至今已经有11个年头,SQLite也迎来了一 个版本 SQLite 3已经发布。 /view/19310.htm
Android-14-数据存储(1)—Preference存储数据(参考模板)
第14讲数据存储(1)—Preference存储数据Android中有三种持久化数据的方法:SQLite数据库、文件存储、Preference。
三种方法各有专攻,而其中Preference是以类似Map的键值对形式存储的,最适合用来保存用户个人设置之类的信息,比如是否打开音效,音量大小、界面颜色等等。
比用文件来保存方便读取。
而SQLite数据库用来保存大量的数据。
基础知识讲解:SharedPreferences与Editor简介---SharedPreferences主要用来保存类似配置信息格式的数据,它保存的数据是key-value对。
它主要负责读取应用的Preference数据。
查看SharedPreference类的源码,重要的方法有:boolean contains(String key)String getString(String key, String defValue)float getFloat(String key, float defValue)……可以返回各种基本类型getAll():获取SharedPreference中的所有的key value对Editor edit():得到一个Editor对象---Editor类SharedPreferences接口本身并没有提供写入数据的能力,而是通过SharedPreference的内部接口,即Editor对象所提供的写入方法来向SharedPreferences中写入数据,重要的方法有:Editor putString(String key, String value);Editor putInt(String key, int value);……可以写入各种基本类型boolean commit(); 当Editor编辑完成时,提交修改,类似于事务Editor remove(String key);Editor clear(); 清空所有已有的SharedPreference数据---得到SharedPreferences的实例Context(Activity类的父类)类提供的方法:preferences= this.getSharedPreferences("setting", Context.MODE_PRIVATE);第一个参数表示在手机内存中所写入的持久化文件为setting.xml,位置如下第二个参数表示权限,控制所写的配置文件是否能由其他的程序所读取或修改例:对前例所开发的记事本程序进行界面颜色的设定。
第6章Android数据存储精品PPT课件
SharedPreferences的重要方法
➢ getString(String key, String defValue):获取String型数 据
➢ registerOnSharedPreferenceChangeListener(SharedPrefere nces.OnSharedPreferenceChangeListener listener):注册 一个当preference被改变时调用的回调函数。
fos.close(); }
该方法用于保存文件。保存文件的过程就是先使用 创建输出流,然后获取待写入到文件中的数据并写 入文件中。写文件的方法是使用write()方法,使用 flush()方法保证输出流写入完成,最后使用close() 方法关闭输出流,文件保存完毕。
Files示例代码说明—helpdoc方法
SharedPreferences保存数据的原理
当保存按钮时,会首先通过getSharedPreferences()方法得到 settings,然后调用edit()方法得到编辑器Editor,使用Editor的 putString和putInt将编辑框及下拉列表的值进行修改,最后使用 commit()方法将数据提交保存。SharedPreferences以xml文件保存 需要保存的值,更重要的是SharedPreferences只能由所属package 的应用程序使用,而不能被其他应用程序使用,从而提高了安全性。
save.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { SharedPreferences settings =
getSharedPreferences(SETTING_INFOS,0);//获取SharedPreferences对象 //关键代码:保存用户名、密码及性别
第4章 数据存储
✎
内部存储—读取
String content = ""; FileInputStream fis; try {
fis = openFileInput("data.txt"); byte[] buffer = new byte[fis.available()]; fis.read(buffer); content = new String(buffer); //字节转换为字符 fis.close(); } catch (Exception e) { e.printStackTrace(); }
• SD卡中的数据属于系统中比较关键的信息,需要在清 单文件的<manifest>节点中添加SD卡的读写权限。
<uses-permission androidБайду номын сангаасname="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
16
✎
外部存储—存入
String state = Environment.getExternalStorageState(); if (state.equals(Environment.MEDIA_MOUNTED)) {
File SDPath = Environment.getExternalStorageDirectory(); File file = new File(SDPath, "data.txt"); String data = "HelloWorld"; FileOutputStream fos; try {
android数据存储
Android数据存储
1.Android数据存储初探
如果你创建一个新的手机操作系统,你会不会考虑数据存储功能?你会加入哪些数据存储方式。
2.Shared Preference(基于XML,进程之间共享数据,最重要应用就是程序的
Setting,XMl主要做配置文件存储)
a.getSharedPrefrerence
b.getSharedPreferences.Editor
mit()
3.Files(二进制文件, 文件路径sdcard:手机内部和外部存储)
a.使用内部存储
b.使用扩展存储
4.SQLite3
a.SQLite数据库简介/
b.SQLiteOpenHelper类:getReadableDatabase(),
getWritableDatabase(),onCreate(SQLiteDatabase db, int oldVersion, int newVersion),onOpen(SQLiteDatabase db),
onUpgrade(SQLiteDatabase db)
c.建立数据库,更新数据库:adb shell 看数据库
d.具体的数据操作:Add,Update,Search,Delete
e.步骤:1.通过Helper建立好数据库表结构-onCreate,onUpgrade。
2.
调用Helper实例,通过get***Database()得到DB对象。
3.通过DB对
象实例来调用增删改查,insert()……
work(网络存储)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【sharePreferences】共享参数:概念:SharedPreferences是Android系统提供的一个通用的数据持久化框架,用于存储和读取key-value类型的原始基本数据类型对,目前支持String、int、long、float、boolean等基本类型的存储,对于自定义的对象数据类型,无法使用SharedPreferences来存储。
他通常以xml文件方式存储在data文件夹中,文件存储路径:/data/data/{appPackageName}/shared_prefs/{filename}SharedPreferences主要用于存储系统的配置信息。
例如上次登录的用户名,上次最后设置的配置信息(如:是否打开音效、是否使用振动,小游戏的玩家积分等)。
当再次启动程序后依然保持原有设置。
SharedPreferences用键值对方式存储,方便写入和读取。
注:SharePreferenced本身的对象不能对数据进行存储和修改,只能获取到数据,是通过Editor的实例化对象对数据进行存储和修改。
常用方法1.Context.getSharedPreferences(String, int mode)mode的属性值有:Context.MODE_PRIVATE:指定该SharedPreferences的数据只能被本应用程序读、写Context.MODE_APPEND:新内容追加到原内容后Context.MODE_WORLD_READABLE: 指定 SharedPreferences数据能被其他应用程序读,但是不支持写Context.MODE_WORLD_WRITEABLE: 指定 SharedPreferences数据能被其他应用程序读、写会覆盖原数据;可以使用"+"连接这些权限2.contains(String key)3.Map<String,?> getAll()4.getString(String key, String defValue)5.SharedPreferences.Editor edit()putString(String key, String value)putStringSet(String key, Set<String> values)putBoolean(String key, boolean value)clear()commit() 编辑完数据之后必须提交SharePreferenced存储数据的方法1.创建一个SharePreferenced的对象:SharedPreferences pref = getSharedPreferences("name_pref", MODE_PRIVATE);2.创建一个Editor的对象 : editor = pref.edit();3.然后调用Editor对象的putXxx方法,把指定的key值和他相对应的数据存储到SharePreferenced当中。
4.调用Editor的commit()方法,把存储的数据内容或者修改的内容提交。
:mit();登录的实例:(重重点)protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);userEt = (EditText)findViewById(erEt);passEt = (EditText)findViewById(R.id.passEt);chkSave = (CheckBox)findViewById(R.id.chkSaveUser);pref = getSharedPreferences("name_pref", MODE_PRIVATE);editor = pref.edit();String name = pref.getString("name", null);//获取数据if (name == null) {chkSave.setChecked(false);}else{userEt.setText(name);chkSave.setChecked(true);}}public void loginClick(View v){String name = userEt.getText().toString();String pass = passEt.getText().toString();if ("admin".equals(name)&&"123456".equals(pass)) {if (chkSave.isChecked()) {editor.putString("name", name);mit();}else{editor.remove("name");mit();}Toast.makeText(MainActivity.this, "登录成功", 0).show();}else{Toast.makeText(MainActivity.this, "登录失败", 0).show();【file存储】内部存储好处:当手机应用被卸载删除的时候,不会有过多的存于垃圾,都会被一起清理掉。
常用方法:1.FileOutputStream Context.openFileOutput (String filename, int mode)Context.MODE_APPENDContext.MODE_PRIVATEContext.MODE_WORLD_READABLEContext.MODE_WORLD_WRITEABLE2.FileInputStream Context.openFileInput (String filename)3.String[] Context.fileList()4.Context.deleteFile(String filename)文件存储的步骤:1.通过调用openFileOutPut()的方法实例化一个文件的输出流。
2.通过调用fileOutputStream的write方法,把byte型数据存储到文件中。
3.关闭流扩展存储(SD卡存储)获取sdcard状态: int Environment.getExternalStorageState()Environment.MEDIA_MOUNTED 介质已加载完Environment.MEDIA_MOUNTED_READ_ONLY 介质已加载完,但是只读状态Environment.MEDIA_CHECKING 正在检测介质Environment.MEDIA_UNKNOWN 介质未知Environment.MEDIA_UNMOUNTED 介质已卸载获取公共目录:File Environment.getExternalStoragePublicDirectory(String type)Environment.DIRECTORY_MOVIESEnvironment.DIRECTORY_MUSICEnvironment.DIRECTORY_DOCUMENTSEnvironment.DIRECTORY_DOWNLOADSEnvironment.DIRECTORY_PICTURESEnvironment.DIRECTORY_RINGTONES获取根目录:File Environment.getExternalStorageDirectory()获取下载缓存目录:File Environment.getDownloadCacheDirectory()读写SD卡的步骤1.判断手机内是否挂载了sd卡,判断是否获得了sd卡的读写使用权限Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTE D))//判断sdcard是否挂载,同时获得了权限File sdcardFile = Environment.getExternalStorageDirectory();2.在清单文件中加入2个权限<!-- 可以读写sd卡的内容 --><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!-- 在sd卡中创建删除文件的权限 --><uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>3.通过Environment.getExternalStorageDirectory()获取手机外置存储卡的地址。
4.然后就可以用FileInputStream,FileOutputStream等等来读写sd卡的文件了【Sqlite数据存储】SQLite简介:是安卓系统集成的轻量级的数据库,使用c语言编写的嵌入式数据库引擎。
无数据库管理引擎,独立DB文件存在的sqlite3工具1. sqlite3是Android SDK自带的命令式数据库管理工具,其所在路径: android_sdk/tools/2. sqlite expert 是可视化的数据库管理工具,最新版本是3.5.38官方下载路径:/download.html商业版:sqlite expert professional 有30天试用期个人版:sqlite expert personal 免费使用3. 破解版下载路径:SQLite Expert Professional(SQLite管理工具) v3.5.21.2440免费版/softview/softview_105940.html>sqlite3 db_name :启动数据库工具sqlite>.helpsqlite>.databasessqlite> .tablessqlite> .schema table_namesqlite>标准sql语句sqlite> .read c:/aa.sql 导入sql语句sqlite> .exit底层特点:1.虽然SQLite的引擎非常小,但她支持存储2TB大小的数据库文件2.以单个文件的形式存在3.是以B—Tree的数据结构存在于磁盘中。