4.文件储存

来源:互联网 发布:android 高仿淘宝 编辑:程序博客网 时间:2024/04/29 06:05

4.储存

A.文件储存

文件都是默认存储到/data/data/<packagename>/files/ 目录下Context类提供openFileOutput()方法,传入文件名和操作模式文件名不可包含路径操作模式有:MODE_PRIVATE  所写内容会覆盖原来的内容          MODE_APPEND   所写内容会追加在原内容后

存储数据

openFileOutput()方法返回一个FileOutputStearm对象,FileOutputStearm f = openFileOutput("name",MODE);然后创建BufferedWriter对象BufferedWriter b = new BufferedWriter(new FileWriter(FileOutputStearm f));b.writer(...);b.close();

读取数据

使用openFiLeInput和BufferedReader。TextUtils.isEmpty(String s)当s为null或者为空,都会返回truesetSelection(x)光标移动到x索引后

B.ShardPreferences储存

用键值对的方式来储存数据文件都是存放在/data/data/<packagename>/shared_prefs/目录下

数据储存到ShardPreferences中

得到ShardPerferences对象的方法1.Context类的getSharedPreferences("file name",MODE)file name 文件名MODE:MODE_PRIVATE默认模式    MODE_MULTI_PROCESS多个进程对同一个文件进行读写2.Activity类的getPreferences(MODE)默认活动名就是文件名3.PerferenceManager类的getDefaultShardPreferences(Context c)静态方法,用当前应用程序的包名来作为文件名

数据存储步骤

1. 调用SharedPreferences 对象的edit()方法来获取一个SharedPreferences.Editor 对象2. 向SharedPreferences.Editor 对象中添加数据比如添加一个布尔型数据就使用putBoolean 方法添加一个字符串则使用putString()方法,以此类推3. 调用commit()方法将添加的数据提交,从而完成数据存储操作。

数据读取步骤

调用SharedPreferences对象的getXxx()方法传入键的名称和查找不到的返回值即可得到值的数据

4.SQLite数据库储存

创建数据库步骤:1.创建一个子类继承SQLiteOpenHelper类,重写构造方法2.构造方法传入4个参数    context 上下文    name    数据库名称    favtory 用来创建cursor对象,默认为null    version 版本号,从1开始。3.重写onCreate()和onUpgrade()方法    数据库第一次被创建时,会执行onCreate()方法,适合做表结构的初始化        SQLiteDatabase.execSQL(String sql)来执行SQL语句,创建表    version 如果发生改变,则会调用onUpgrade()方法,适合做表结构的修改4.创建帮助类对象,调用getReadableDatabase()方法来初始化数据库的创建,得到SQLiteDatabase对象

SQLite语句

integer 表示整型real 表示浮点型text 表示文本类型blob 表示二进制类型primary key 将id 列设为主键autoincrement 关键字表示id 列是自增长的。

4.1添加数据

SQLiteDatabase的insert()方法就是用来添加数据的insert(String table,String nullColumnHack,ContentValues values)    table   要添加数据的表名    nullColumnHack  一般是null    values  保存要添加的数据的ContentValues对象

4.2更改数据

SQLiteDatabase的update()db.update("book",values,"author = ?",new String[]{"maoqi"});"book"  要更改数据的表名"values"    要更改的数据存放的ContentValues对象"author = ?",new String[]{"maoqi"}  更新所有author为maoqi的所对应的数据

4.3删除数据

delete()

4.4查询数据

query()方法返回的是Cursor对象,然后把查询到的数据从Cursor对象中取出    ex:String name = cursor.getString(cursor.getColumnIndex("name"));    cursor.moveToFirst()    将数据的指针移动到一行的位置  

5.使用SQL语法操作数据库

5.1添加数据的方法如下:

db.execSQL("insert into Book (name, author,pages,price) values(?, ?, ?, ?)",    new String[] { "The Da Vinci Code", "Dan Brown","454","16.96" });db.execSQL("insert into Book (name, author, pages,price) values(?, ?, ?, ?)",    new String[] { "The Lost Symbol", "Dan Brown", "510","19.95" });

5.2更新数据的方法如下:

db.execSQL("update Book set price = ? where name= ?",new String[] { "10.99","The Da Vinci Code" });

5.3删除数据的方法如下:

db.execSQL("delete from Book where pages > ?", newString[] { "500" });

5.4查询数据的方法如下:

db.rawQuery("select * from Book", null);

6.事务

事务的特性可以保证让某一系列的操作要么全部完成,要么一个都不会完成。//开启事务SQLiteDatabase db = dbHelper.getWritableDatabase();db.beginTransaction();//事务执行成功db.setTransactionSuccessful();//db.endTransaction();
0 0
原创粉丝点击