Android 数据存储5种方式
2015-09-09 21:09
323 查看
目录
SharedPreference存储
内部存储数据
外部存储数据
数据库SQlite数据存储
网络存储
对于开发者来说Android的数据存储方式主要有五种:
SharedPreference存储
内部存储数据
外部存储数据
数据库SQlite数据存储
网络存储
第一种 使用SharedPreference数据存储
SharedPreference对象本身只能获取数据而不支持数据的存储和修改,存储修改是通过Editor对象来实现的
实现SharedPreference数据存储的步骤如下:
1 通过getPreference()方法得到SharedPreference的对象
2 通过edit方法来获得Editor的对象
3 利用Editor对象来实现数据的存储
4 通过commit()方法来提交
代码实现
第二种 内部存储数据
1 所谓的内部存储与外部存储,是指是否是手机内置。手机内置的存储空间,称为内部存储,Android的内部存储空间对于应用程序来说,就是“/data/data”目录。
2 使用内部存储主要有二个方式,一个是文件操作,一个是文件夹操作。
无论哪种方式,都提供了openFileInput()和openFileOutput()方法来读取设备上的文件。。
代码示例:
第三种 外部存储数据存储
1 Android外部存储空间,与内部存储空间相对,外部存储空间是指手机出厂的时候不存在,用户在使用时候可以自由添加的外部存储介质,例如TS卡、SD卡等。
2 也是对文件进行操作。
代码示例:
第四种 数据库存储SQLite
1 SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。
数据库存储在 data/< 项目文件夹 >/databases/ 下。 Android 开发中使用 SQLite 数据库
Activites 可以通过 Content Provider 或者 Service 访问一个数据库。
Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。
SQLiteOpenHelper 的子类,至少需要实现三个方法:
1 构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。
2 onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。
3 onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。
第五种 网络存储
在这不作介绍
SharedPreference存储
内部存储数据
外部存储数据
数据库SQlite数据存储
网络存储
对于开发者来说Android的数据存储方式主要有五种:
SharedPreference存储
内部存储数据
外部存储数据
数据库SQlite数据存储
网络存储
第一种 使用SharedPreference数据存储
SharedPreference对象本身只能获取数据而不支持数据的存储和修改,存储修改是通过Editor对象来实现的
实现SharedPreference数据存储的步骤如下:
1 通过getPreference()方法得到SharedPreference的对象
2 通过edit方法来获得Editor的对象
3 利用Editor对象来实现数据的存储
4 通过commit()方法来提交
代码实现
//写操作 SharedPreferences preferences=getPreferences(MODE_PRIVATE); SharedPreferences.Editor editor=preferences.edit(); editor.putString("edit_input",mEditTxetWrite.getText().toString()); editor.commit();
//读操作 SharedPreferences preferences=getPreferences(MODE_PRIVATE); String content=preferences.getString("edit_input","我是默认值"); mTextViewRead.setText(content);
第二种 内部存储数据
1 所谓的内部存储与外部存储,是指是否是手机内置。手机内置的存储空间,称为内部存储,Android的内部存储空间对于应用程序来说,就是“/data/data”目录。
2 使用内部存储主要有二个方式,一个是文件操作,一个是文件夹操作。
无论哪种方式,都提供了openFileInput()和openFileOutput()方法来读取设备上的文件。。
代码示例:
// 文件的写操作(在file文件夹下的缓存数据) try { FileOutputStream outputStream=openFileOutput("key",MODE_PRIVATE); PrintWriter printWriter=new PrintWriter(new OutputStreamWriter(outputStream)); printWriter.write("你好,世界"); printWriter.flush(); printWriter.close(); outputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // 文件的读操作 try { FileInputStream inputStream=openFileInput("key"); BufferedReader br=new BufferedReader(new InputStreamReader(inputStream)); String line=br.readLine(); while (line!=null){ Log.d("TGA", ""+line); line=br.readLine(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
// 写入到cache文件夹下的缓存数据 File file=new File(getCacheDir(),"hello.txt"); if (!file.exists()){ try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } try { FileOutputStream outputStream=new FileOutputStream(file); PrintWriter printWriter=new PrintWriter(new OutputStreamWriter(outputStream)); printWriter.write("你好,Android"); printWriter.flush(); printWriter.close(); outputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // 读取cache文件夹下的数据 try { FileInputStream inputStream=openFileInput("hello.txt"); BufferedReader br=new BufferedReader(new InputStreamReader(inputStream)); String line=br.readLine(); while (line!=null){ Log.d("TGA", "" + line); line=br.readLine(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
第三种 外部存储数据存储
1 Android外部存储空间,与内部存储空间相对,外部存储空间是指手机出厂的时候不存在,用户在使用时候可以自由添加的外部存储介质,例如TS卡、SD卡等。
2 也是对文件进行操作。
代码示例:
File file=new File(Environment.getExternalStorageDirectory(),"hellosdcard.txt"); //Environment.getExternalStorageDirectory()指得到路径 if (!file.exists()){ try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } try { FileOutputStream outputStream=new FileOutputStream(file); PrintWriter printWriter=new PrintWriter(new OutputStreamWriter(outputStream)); printWriter.write("你好本地存储"); print 4000 Writer.flush(); printWriter.close(); outputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
第四种 数据库存储SQLite
1 SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。
数据库存储在 data/< 项目文件夹 >/databases/ 下。 Android 开发中使用 SQLite 数据库
Activites 可以通过 Content Provider 或者 Service 访问一个数据库。
Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。
SQLiteOpenHelper 的子类,至少需要实现三个方法:
1 构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。
2 onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。
3 onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。
第五种 网络存储
在这不作介绍
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件