导图社区 硬件数据存储数据库知识框架笔记
硬件数据存储数据库知识框架笔记,包括为什么、interface SharedPreferences、Internal storage、ExternalStorage、硬件基础等内容。
编辑于2022-11-04 13:59:00 广东硬件数据存储数据库知识框架笔记
为什么
数据库设计
对其他用户是否可见
是否其他用户可修改
空间大小
访问方便
分类
shared Preferences
存储私有的
键值对小数据
Internal Storage
设备内部数据
External Storage
外部设备SDcard等
共享数据
SQLite Databases
数据库存储结构化数据
Network Connection
数据存储到远程服务器
网络
于http协议(应用程)
httpUrlConnection
HttpClient
基于Socket通信(传输层)
TCp
UDP
interface SharedPreferences
得到接口实例化对象
getSharedPreferences(String, int)
contextWrapper提供的
整个应用程序中都可以使用
(读取数据的不带拓展名文件名,文件的操作模式)
A:Context.MODE_PRIVATE(0):
私有模式
B:Context.MODE_APPEND(32768)
追加模式
C:Context.MODE_WORLD_READABLE
全局只读模式
D:Context.MODE_WORLD_WRITEABLE
全局可写模式
E:Context.MODE_MULTI_PROCESS
全局可读写
A+B
A|B
getpreferences(mode)
Activity提供
生成的文件和当前Activity的简单类名(不包括包名的类名)相同.
MainActivity.xml
SharedPreferences.Editor
修改SharedPreferences对象设定值的接口
实现代码
editor.putString
saveSharedPreferences保存写入数据
sharedPreferences.edit()
editor.putString("name", "姐");
添加值
editor.commit();
提交保存
读取数据
sharedPreferences
getAll();
获取键,默认值
getXXx();
getSet();
sharedPreferences.getStringSet("addr", addSet);
测试数据
extends AndroidTestCase
SharedPreferencesServiceTest extends AndroidTestCase
启动装备setUp()
重写testXXX
testGetMapsOne()
Context context=this.getContext();
Map<String,?> map=this.sharedPreferencesService.getMapsOne(context);
testGetMapsTwo()
Map<String,Object> map=this.sharedPreferencesService.getMapsTwo(getContext());
testSaveSharedPreferences()
this.sharedPreferencesService.saveSharedPreferences(context);
if(isSuccess){
1.启动测试装置
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.sharedpreferencesdemo01"
2.引入测试类库
Internal storage
实现
layout
三个点击事件的button
android:id="@+id/button_save"
android:onClick="save"
android:text="保存数据"
mian
点击按钮事件处理
save
1.得到文件输出流对象
FileoutputStream fos = this.openFileoutput("jie.txt,Content.MODE_PRIVATE")
2.将数据转换成字节数组保存文件
String content = “admin@123”
byte[] buffer = content.getBytes();
fos.write(buffer )
3.关闭文件输出流对象
fos.close();
存储结果
相当于
read
1.得到文件输入流对象
fileInputStream=this.openFileInput("hsj.txt");
2.读取文件输入流中的数据
byte【】 buffer= new byte[1024];
new StreamBuilder();
int len = -1;
处理数据
String【】 items = sb.toString().split("@");
String name = item[0]
String pwd = item[1];
FileInputStream.close();
common(View view){}//演示常用方法
Activity获得文件
this.getCacheDir();
获取/data/data/主包名/cache目录
getFilesDir()方法
获取/data/data/主包名/files目录
//主包名/qq/hsj
new File(this.getFilesDir().getParentFile(),"qq/hsj");
获得文件路径
file.getAbsluteFile();
file.getDir()
文件操作
创建
if(!file.exists()){
file.mkdirs();
删除
deleteFile("hsj.txt")
获得
String[] items=this.fileList();
genymotionSDCard
FIle explder
ExternalStorage
需要指定sdcard路径
Environment.getExternalStorageDirectory()
访问权限
获取SDCard的状态
Environment.getExtemalStorageState()
Environment.MEDIA_MOUNTED
手机有SD卡并且可以读写
获取SDCard的目录
Environment.getExtemalStorageDirectory()
写入数据
1.判断手机的SDCard是否存在并且可用
Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
* 2.得到手机SDCard的根目录
File root=Environment.getExternalStorageDirectory();
* 3.根据需要读取的文件名和当前手机SDCard的根目录生成一个目标文件
File destFile=new File(root,"hsj.bak");
* 4.根据文件生成文件输出流对象。
FileOutputStream fos=new FileOutputStream(destFile);
* 5.调用文件输出流对象的write方法写入数据
fos.write(byte[]);
* 6.关闭文件输出流对象
fos.close();
读取数据
1.判断手机的SDCard是否存在并且可用
Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
2.得到手机SDCard的根目录
File root=Environment.getExternalStorageDirectory();
3.根据需要读取的文件名和当前手机SDCard的根目录生成一个目标文件
* File destFile=new File(root,"hsj.bak");
* 4.根据文件生成文件输入流对象
* FileInputStream fis=new FileInputStream(destFile);
* 5.调用文件输入流对象的read()读取数据
* fis.read(buffer);
* 6.关闭文件输入流对象
* fis.close();
硬件基础
RAM/ROM/存储卡
RAM (Random Access Memory)
随机存取存储器
PC电脑的内存
掉电数据会失去.
ROM (Read Only Memory)
ROM不在限定于只读
相当于PC电脑的硬盘
三部分
操作系统
系统软件
用户自由空间
存储卡
RAM/ROM之外的存储扩展
PC电脑的移动硬盘/U盘
出入
产商一般1G=1000M
检测软件使用1G=1024M