摘要:本文旨在復習總結持久化存儲方法,只列出了主要代碼以及少量批注,僅作為復習參考使用。
本文旨在復習總結Android持久化存儲方法,只列出了主要代碼以及少量批注,僅作為復習參考使用。
文件存儲所有文件默認放在/data/data/
public void save(String inputText){ FileOutputStream out=null; BufferedWriter writer=null; try { out=openFileOutput("data", Context.MODE_PRIVATE); writer=new BufferedWriter(new OutputStreamWriter(out)); writer.write(inputText); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { if(writer!=null){ try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } }
public String load(){ FileInputStream in =null; BufferedReader reader=null; StringBuilder content=new StringBuilder(); try { in=openFileInput("data"); reader=new BufferedReader(new InputStreamReader(in)); String line=""; while ((line=reader.readLine())!=null){ content.append(line); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { if(reader!=null){ try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return content.toString(); }SharePreferences方法
SharePreference文件默認放在/data/data/
SharedPreferences.Editor editor=getSharedPreferences("data",MODE_PRIVATE).edit(); editor.putString("et_inputText","sharePreferences test"); editor.commit();
SharedPreferences sp=getSharedPreferences("data",MODE_PRIVATE); String input=sp.getString("et_inputText","請輸入用戶名");//第二個參數是為空的默認信息SQLite數據庫存儲
SQLite文件默認放在/data/data/
public class MyDataBaseHelper extends SQLiteOpenHelper{ private static final String CREATE_BOOK="create table Book(" +"id integer primary key autoincrement, " +"author text, " +"price real, " +"pages integer, " +"name text)"; private static final String CREATE_CATEGORY="create table Category(" +"id integer primary key autoincrement, " +"category_name text, " +"category_code integer)"; private Context mContext; public MyDataBaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); mContext=context; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_BOOK); db.execSQL(CREATE_CATEGORY); Toast.makeText(mContext,"create succeed",Toast.LENGTH_SHORT).show(); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("drop table if exists Book"); db.execSQL("drop table if exists Category"); onCreate(db); }
創建數據庫
dbHelper=new MyDataBaseHelper(this,"BookStore.db",null,2);
插入數據
SQLiteDatabase db=dbHelper.getWritableDatabase(); ContentValues values=new ContentValues(); values.put("name","Effective Java"); values.put("author","Joshua Bloch"); values.put("pages",454); values.put("price",16.96); db.insert("Book",null,values);
更新數據
ContentValues values=new ContentValues(); values.put("price",198.00); SQLiteDatabase db=dbHelper.getReadableDatabase(); db.update("Book",values,"name=?",new String[]{"Android Programme"});
刪除行
SQLiteDatabase db = dbHelper.getWritableDatabase(); db.delete("Book", "pages > ?", new String[] { "500" });
ContentValues知識android提供的一個便于數據庫操作的類,為數據庫操作提供便利,也可以直接使用數據庫語句進行操作
參考書目《第一行代碼》
我的文章列表
Email:sxh13208803520@gmail.com
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66961.html
摘要:此時再次旋轉屏幕時,該不會被系統殺死和重建,只會調用。因此可通過和來判斷是否被重建,并取出數據進行恢復。但需要注意的是,在取出數據時一定要先判斷是否為空。只有在進程不被掉,正常情況下才會執行方法。 目錄介紹 1.0.0.1 說下Activity的生命周期?屏幕旋轉時生命周期?異常條件會調用什么方法? 1.0.0.2 后臺的Activity被系統回收怎么辦?說一下onSaveInsta...
閱讀 1751·2023-04-25 22:42
閱讀 2202·2021-09-22 15:16
閱讀 3486·2021-08-30 09:44
閱讀 485·2019-08-29 16:44
閱讀 3304·2019-08-29 16:20
閱讀 2512·2019-08-29 16:12
閱讀 3387·2019-08-29 16:07
閱讀 667·2019-08-29 15:08