文件存储
内部存储
获取IO流
openFileInput (FileName);
openFileoutput(FileName ,mode)
//mode:
//MODE PRIVATE:代表自己本程序可以使用
//MODE_ APPEND: 表示可追加
//MODE WORLD. READABLE:可以被其他app程序读,不能写。
//MODE WORLD_ WRITEABLE:可以被其他程序读写
外部存储
1、Environment.getDataDirectory() = /data
这个方法是获取内部存储的根路径
2. getFilespir).getAbsolutePath() = /data/user/0/packname/files
这个方法是获取某个应用在内部存储中的files路径
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(.getAbsolutePath0=/storage/emulated/0
这个方法是获取外部存储的根路径
6.Environment.getExternalStoragePublicirectory")getAbsolutePath0=/storage/emulated/0
这个方法是获取外部存储的根路径
7.getExternalFilesDir(").getAbsolutePath()=/storage/emulated/0/Android/data/packname/files
这个方法是获取某个应用在外部存储中的files路径
8.getExternalCacheDir)-.getAbsolutePath0=/storage/emulated/0/Android/data/packname/cache
这个方法是获取某个应用在外部存储中的cache路径
<!--文件读写权限-->
<uses -permission android:name="android . permiss ion .WRITE_ EXTERNAL_ STORAGE" />
<uses -permission android: name=" android. permiss ion . READ_ EXTERNAL_ STORAGE" />
//1.判断外部存储设备是否可用:设备是可以用装载
if (Environment . getExternalstor agestate() . equals (Environment .MEDIA MOUNTED))
//2.获取外部存储的路径:不同Android版本手机型号:华为 小米;外部存储敗sdCard
string sdPath=
getApplicationContext( . getExternalFilesDir (nu11) . getAbsoluteFile() .tostringO;
//3.创建文件
File file=new File(sdPath+"a.txt");
try{
if(!file.exists O){
file. createNewFile(;
}
//4.I0流
FileInputstream fi=new FileInputstream(fi1e);
byte buff[]=new byte[fi. available()];
//5.写入数据
fi.read(buff);
//6.关闭
System. out. print1n("red==="+new Str ing(buff);
}catch (Exception e){
e .printstackTrace ();
}
System. out . print1n(sdPath) ;
}
XML序列化
●序列化是将对象状态转换为可保持或传输的过程。在序列化对象时,需要使用XmlSerialize序列化器,它可以将I0流中传输的对象变得像基本类型数据一样,实现数据传递的功能。
●序列化后的对象以XML形式保存
SQLite数据库简介
SQLite是一个轻量级数据库,第一-个版本诞生于2000年5月。它最初是为嵌入式设计的,占用资源非常低,在内存中只需要占用几百KB的存储的空间。
●SQLite 是遵守ACID关联式的数据库管理系统。ACID是指数据库事务正确执行的基本要素,即原子性(Atomicity) 、一致性(Consistency) 、 隔离性(Isolation)、持久性(Durability) 。
●SQLite没有 服务器进程,它通过文件保存数据,该文件是跨平台的,可以放在其他平台中使用。并且支持NULL、INTEGER、 REAL (浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)五种数据类型。
SQLite操作API
●Android SDK提供了一系列对数据库进行操作的类和接口。常用的数据库操作类有:
SQLiteOpenHelper类
●该类是一个抽象类,用于创建数据库和数据库版本更新。
SQLiteDatabase类
●该类是一个数据库访问类,封装了一系列数据库操作的API,可以对数据进行增删改查操作。
Cursor接口
●是一个游标接口,在数据库操作中作为返回值,相当于结果集ResultSet。
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表中的信息)