1、文件存储
1、openFileOutput将数据存储到文件
String data = "i love you";
BufferedWriter bw = null;
try {
FileOutputStream out = openFileOutput("data", Context.MODE_PRIVATE);
bw = new BufferedWriter(new OutputStreamWriter(out));
bw.write(data);
} catch (Exception e) {
e.printStackTrace();
}finally {
if (bw != null){
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2、openFileInput从文件中读取数据
String line;
BufferedReader br = null;
StringBuilder content = new StringBuilder();
try {
FileInputStream fis = openFileInput("data");
br = new BufferedReader(new InputStreamReader(fis));
while ((line = br.readLine())!=null){
content.append(line);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if (br != null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2、SharedPreferences存储
1、往SharedPreferences存数据
SharedPreferences.Editor editor = getSharedPreferences("config", Context.MODE_PRIVATE).edit();
editor.putInt("age",18);
editor.putString("name","大帅哥");
editor.apply();
2、从SharedPreferences取数据
SharedPreferences config = getSharedPreferences("config", Context.MODE_PRIVATE);
config.getInt("age",0);
config.getString("name",null);
3、SQLite数据库存储
SQLite主要通过SQLiteOpenHelper 管理数据库
需要提供一个类继承SQLiteOpenHelper类,实现onCreate、onUpgrade方法和重写构造方法
public class MyDatabaseHelper extends SQLiteOpenHelper {
private Context mContext;
public static final String CREATE_BOOK = "create table Book(" +
"id integer primary key autoincrement," +
"author text," +
"price real" +
"name text)";
public MyDatabaseHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_BOOK);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
1、创建数据库
MyDatabaseHelper helper = new MyDatabaseHelper(this, "BookStore,db", null, 1);
helper.getWritableDatabase();
2、更新数据库
在onUpgrade方法里面删除已创建的数据库表,重新创建数据库,最后更新数据库版本
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists Book");
onCreate(db);
}
//更新版本,数据库版本比之前的大即可
MyDatabaseHelper helper = new MyDatabaseHelper(this, "BookStore,db", null, 2);
3、添加数据
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name","kadan");
values.put("age",18);
values.put("weight",132);
db.insert("Book",null,values);
//清空values里的内容,二次添加时使用
values.clear();
4、更新数据
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("age",21);
//更新 姓名为kadan的年龄 设为21
db.update("Book",values,"name=?",new String[]{"kadan"});
5、删除数据
SQLiteDatabase db = dbHelper.getWritableDatabase();
//删除年龄大于20的行
db.delete("Book","age>?",new String[]{"20"});
6、查询数据
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("Book", null, null, null, null, null, null, null);
if (cursor.moveToFirst()){
do{
@SuppressLint("Range") String name = cursor.getString(cursor.getColumnIndex("name"));
@SuppressLint("Range") String age = cursor.getString(cursor.getColumnIndex("age"));
@SuppressLint("Range") String weight = cursor.getString(cursor.getColumnIndex("weight"));
}while (cursor.moveToNext());
cursor.close();
}
7、android可以通过execSQL方法使用sql语句实现增删改查