Android 五種儲存方式個人總結,android五種

來源:互聯網
上載者:User

Android 五種儲存方式個人總結,android五種

一 . 檔案儲存體

  FileOutputStream out = openFileOutput("data",Context.MODE_PRIVATE);

  BufferedWriter writer = new BufferedWriter(new OutputStream(out));

  String  s ;

  writer.writer(s);

二. sharePreferences 儲存 (索引值對形式)

   方法 1.    Context 類中的getSharedPreferences("檔案名稱字",操作模式) 方法

                    操作模式一般兩種 :

                                         MODE_PRIVATE                   只允許本進程使用

                                         MODE_MULTI_PROCESS       ('mʌltɪ)多的進程

    方法 2.    Activity類中的getSharedPreferences(操作模式) 方法

    方法 3.    PreferenceManager類中的getSharedPreferences()方法

                

                寫:  SharedPreferences.Editor  editor = PreferenceManager.getDefaultSharedPreferences(context).edit();

                       editor.putString("key",value);

                讀:  SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

                       prefs.get("key","沒有值時候預設")    

三.  SQLite            

           1.首先要建立一SQLiteOpenHelper資料庫的輔助類,類中有a,b兩個方法

                a. onCreate()用於建立表 ,如

                  Public void onCreate(SQLiteDatabase db){

                                db.execSQL(建立表語句)

                      }

                b.onUpgrade()

           2.建立一個開啟或現有的資料庫

             SQLiteOpenHelper  msh = new SQLiteOpenHelper(content或this,DB_name,null,Version版本);

             SQLiteDatabase db = msh.getwritableDatabase()

           3.添加資料

                                         // ContentValue類似hashMap

                ContentValues contentValues = new ContentValues();

                contentValues.put("key",values);

                db.insert("表名",條件或null,contentValues)

            4.查詢資料

               Cursor cursor = db.query("表名",null,null,null,null,null,null);

                if(cursor.moToFirst()){

                         String data = cursor.getString(cursor.getColumnIndex("data"));

                }while(cursor.moveToNext);

               cursor.close();

             5. 改正資料

              db.update("表名",values,"data=?",new String[]{"new data"});

              6.刪除資料

             db.update("表名","pages>?",new String[]{"500"}); //刪除pages大於500的表

四. ContentProvide共用資料的儲存

注意 : 通過 Context 中的 getContentResolver()方法擷取到該類的執行個體, Uri對象來查詢表中的資料

         Uri  可以是  ContactsContract.CommonDataKinds.Phone.CONTENT_URI(讀取連絡人的許可權)

1.內容 URI給內容提供器中的資料建立
       了唯一識別碼,它主要由兩部分組成,許可權(authority)和路徑(path)

        authority : 包名 + provider  比如 com.example.app.provider

        path : 表名    比如table1

        頭部加上協議聲明

        URI 標準的格式寫法:content://com.example.app.provider/table1

        Uri uri = Uri.parse("content://com.example.app.provider/table1")

2.建立資料

           ContentValues values = new ContentValues();
           values.put("column1", "text");
           getContentResolver().insert(uri, values);

3.查詢資料       

        Cursor cursor = getContentResolver().query(uri,projection,selection,selectionArgs,sortOrder);

        if (cursor != null) {
                            while (cursor.moveToNext()) {
                            String column1 = cursor.getString(cursor.getColumnIndex("column1"));

                             }  

                          cursor.close();
         }

4.修改資料

      getContentResolver().update(uri, values, "column1 = ? and column2 = ?", newString[] {"text", "1"});

5.刪除資料

      getContentResolver().delete(uri, "column1 = ?", new String[] { "1" });

四(2)  自訂ContentProvider

1.  自訂類繼承ContentProvider類,重新 onCreate() , query() , insert() ,update() , delete() , getType() 方法

    自訂不用uri.parse(),但是首先要對比uri是否相等 uriMatcher.match(傳入的uri)  ,其次getType()是根據uri相等,返回 Uri 對象所對應的 MIME類型 .

     MIME類型的規定 :
              1.  必須以 vnd 開頭。
               2.  如果內容 URI 以路徑結尾,則後接 android.cursor.dir/,如果內容 URI 以 id 結尾,
              則後接 android.cursor.item/。
              3.  最後接上 vnd.<authority>.<path>。比如vnd.android.cursor.dir/vnd.com.example.app.provider.table1

                                                                           vnd.android.cursor.item/vnd. com.example.app.provider.table1

            



 2. manifest.xml 文中聲明

 <provider

    android:name = "比如com.example.databasetest.DatabaseProvider"

    android:anthorities = "比如com.example.databasetest.provider"

/>

 

五.

  通過網路的空間儲存資料,比如上傳檔案和下載檔案,有比如 使用者資料的上傳和下載核對

             

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.