十六、Android数据库操作

16.1文件存储
16.1.1内部存储

openFileInput(FileName); openFileOutput(FileName,mode)
//mode:
//MODE_PRIVATE:代表自己本程序可以使用
//MODE_APPEND:表示可追加
//MODE_WORLD_READABLE:可以被其他app程序读,不能写。4.2之后舍弃
//MODE_WORLD_WRITEABLE:可以被其他程序读写

16.1.2外部存储

1.Environment.getDataDirectory() = /data 这个方法是获取内部存储的根路径
2.getFilesDir().getAbsolutePath() = /data/user/0/packname/fifiles这个方法是获取某个应用在内部 存储中的fifiles路径
3.getCacheDir().getAbsolutePath() = /data/user/0/packname/cache 这个 方法是获取某个应用在内部存储中的cache路径
4.getDir(“myFile”, MODE_PRIVATE).getAbsolutePath() =
/data/user/0/packname/app_myFile 这个方法是获取某 个应用在内部存储中的自定义路径方法2,3,4的路径中都带有包名,说明他们是属于某个应用
5.Environment.getExternalStorageDirectory().getAbsolutePath()=/storage/emulated/0 这个 方法是获取外部存储的根路径
6.Environment.getExternalStoragePublicDirectory(“”).getAbsolutePath()=/storage/emulated/0 这个方法是获取外部存储的根路径
7.getExternalFilesDir(“”).getAbsolutePath()=/storage/emulated/0/Android/data/packname/fifiles 这个方法是获取某个应用在外部存储中的fifiles路径
8.getExternalCacheDir().getAbsolutePath()=/storage/emulated/0/Android/data/packname/cache 这个方法是获取某个应用在外部存储中的> cache路径

<!--文件读写权限-->
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
//1.判断外部存储设备是否可用:设备是可以用装载 
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
    
     
//2.获取外部存储的路径:不同Android版本 手机型号:华为 小米;外部存储一般sdCard 
String sdPath= getApplicationContext().getExternalFilesDir(null).getAbsoluteFile().toString( ); 
//3.创建文件 
File file=new File(sdPath+"a.txt"); 
try{
    
    
if(!file.exists()){
    
     
file.createNewFile(); 
}
//4.IO流
 FileInputStream fi=new FileInputStream(file); byte buff[]=new
  byte[fi.available()]; 
  //5.写入数据 fi.read(buff); 
  //6.关闭 
  System.out.println("red==="+new String(buff)); }catch (Exception e){
    
     
  e.printStackTrace(); 
  }
  System.out.println(sdPath);
   }

16.2XML序列化

  • 序列化是将对象状态转换为可保持或传输的过程。在序列化对象时,需要使用XmlSerialize序列化器,它可以将I0流中传输的对象变得像基本类型数据一样,实现数据传递的功能。
  • 序列化后的对象以XML形式保存。

16.3 SqlLite
16.3.1SqlLite数据库简介

  • SQLite是一个轻量级数据库,第一-个版本诞生于2000年5月。它最初是为嵌入式设计的,占用资源非常低,在内存中只需要占用几百KB的存储的空间。
  • SQLite 是遵守ACID关联式的数据库管理系统。ACID是指数据库事务正确执行的基本要素,即原子性(Atomicity)
    、一致性(Consistency) 、 隔离性(Isolation)、持久性(Durability) 。
  • SQLite没有 服务器进程,它通过文件保存数据,该文件是跨平台的,可以放在其他平台中使用。并且支持NULL、INTEGER、 REAL
    (浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)五种数据类型。

16.3.2 SqlLite数据库的使用
1) SqlLite操作API
ndroid SDK提供了一系列对数据库进行操作的类和接口。常用的数据库操作类有:

  • SQLiteOpenHelper类
    该类是一个抽象类,用于创建数据库和数据库版本更新。
  • SQLiteDatabase类
    该类是一个数据库访问类,封装了一系列数据库操作的API,可以对数据进行增删改查操作。
  • Cursor接口
    是一个游标接口,在数据库操作中作为返回值,相当于结果集ResultSet。

2)数据库的常用操作
Android SDK提供了一系列对数据库进行操作SQLite数据库的API。SQLiteDatabase就是其中一个,它提供了一些列用于操作数据库的方法。

  • insert()
  • update()
  • delete()
  • query()

3)sqlite3工具
在使用该工具时,首先需要打开DOS命令行,依次输入如下命令:
adb shell (挂 载到linux的空间)
cd data/data (进 入data/data目录)
cd cn.itcast.db (应 用程序包名)
Is (Linxus命令列出当前文件夹下的文件)
cd databases (进 入databases文件夹)
ls-I (列出当前文件夹所有文件的详细格式)
sqlite3 person.db (使用sqlite3操作应用程序下的数据库)
select * from person; (利用sq|语句查询person表中的信息)

猜你喜欢

转载自blog.csdn.net/weixin_45802395/article/details/113774351