您的位置:首页 > 移动开发 > Android开发

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()方法来提交

代码实现

//写操作
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 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。

第五种 网络存储

在这不作介绍
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息