android 存储数据的3种方式

   android开发中存储数据的三种方式

   一、 使用文件存储数据

使用文件存储数据是把数据保存成一个文件存在手机或者android 设备当中,需要的时候程序打开文件读取里面的资料。

写入代码如下:

public void saveData(String data){

FileOutPutStream out = null;

BufferedWtriter writer = null;

try{

  out = openFileOutPut("fileName",Context.MODE_PRIVATE);

  writer = new BufferedWriter(new OutPutStreamWriter(data));

  writer.write(data);

}catch(Exception e){

   e.printStackTrace();

}finally{

try{

if(writer !=null)

{

write.cloes();

}

}catch(Exception e2){

 e2,printStackTrace();

}

     }

}

总结一下,3个步骤,新建文件,新建数据流写入数据,关闭数据流。其中openFiileOutPutA方法,第一个参数是文件名,第二个参数是文件的操作模式,主要有两种模式可选,MODE_PRIVATE 和 MODE_APPEND。其中MODE_PRIVATE 是默认的操作模式,表示当指定同样文件名的时候,所写入的内容会覆盖原文件的内容。而MODE_APPEND则表示追加内容。不会覆盖。

      读取文件内容代码:

public String getDataFromFile(){

String temp = "";

FileInputStream in = null;

BufferedReader  reader = null;

StringBuilder content = new StringBuilder();

try{

in = openFileInput("data");

reader = new BufferedReader(new InputStreamReader(in));

while((temp = reader.readline()) != null ){

 content.append(temp);

}

}catch(IOException e){
e.printStackTreac();

}finally{

 if(reader != null){

 try{

   reader.close();

}catch(Exception e2){
 e2.printStackTrace();

  }

}

}

  return content.toString();

}


二 使用SharedPreferences 保存数据

 使用SharedPreferences实际上也是将数据生成文件保存到手机当中,不过比起直接用文件,SharedPreferences是有格式的,保存成键值对的形式。

用SharedPreferences 比保存成文件更加方便。

      代码如下:

public void savaDataBySharedPreferences(String name, int age){

     SharedPreferences.Editor editor = getSharedPreferences("data2",MODE_PRIVATE).edit();

     editor.putString("name", name);

     editor.putInt("age", age);

     editor.commit();

}


public void getDataBySharedPreferences(){

  SharedPreferences getdata  = getSharedPreferences("data2", MODE_PRIVATE);

 if(getdata != null){

 String name = getdata.getString("name", "");

 int age = getdata.getInt("age", 0);

  }

}

 三 使用sqlite数据库保存数据

android中内置了sqlite数据库,也提供了api支持,对于使用其他数据库的开发者来说,sqlite使用起来也应该比较熟悉。

给出代码如下:

自定义类 MyDatabaseHelper

  public class MyDatabaseHelper extends SQLiteOpenHelper{
public static final String CREATE_STUDENTS = " create table students number integer primary key autoincrement, name text";

private Context mContext;

public MyDatabaseHelper(Context context, String name, CursorFactory, int version){

  super(context, name, factory, version);

mContext= context;

 }

@Override

public void onCreate(SQLiteDatabase db){

db.execSQL(CREATE_STUDENTS);

Toast.makeText(mContext,"Create db successed", 1000).show();

}

  @Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){

db.execSQL("drop table if exists students");

}

}

  MainActivity中有关数据库操作的部分

private MyDatabaseHelper mydb;

pirvate SQLiteDatabase db;

private ContentValues values;


public void createDatabase(){

if(mydbHelper == null){

mydbHelper = new MyDatabaseHelper(this, "Students.db", null, 1);

mydbHelper.getReadableDatabase;

}

}

public void UpdataDB(int version){

mydbHelper = new MyDatabaseHelper(this, "Students.db", null, version);

}


@Override

  public void onClick(View v){

switch(v.getId()){

case R.id.btnAddData:

valuse.put("name", myeditText.getText().toString());

db.insert("students", null, values)

break;

case R.id.btnDeleteData;

db.delete("students","name = ",new String[]{"123456"});
Toast.makeText(this, "delete successed", 1000).show();

break;

case R.id.btnChangeData:
values.put("name", myeditText.getText().toString());
db.update("students", values, "name = ?", new String[]{"aa"});
break;
case R.id.btnShowData:
Cursor cursor = db.query("students", null, null, null, null, null, null);
if(cursor.moveToFirst()){
do{

}while(cursor.moveToNext());
}
break;

}

}















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值