真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android開發(fā)中如何實現(xiàn)數(shù)據(jù)存儲-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Android開發(fā)中如何實現(xiàn)數(shù)據(jù)存儲,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

10年積累的成都做網(wǎng)站、成都網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有鐵西免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

在Android中,可以使用幾種方式實現(xiàn)數(shù)據(jù)持久化:

  • Shared Preferences:共享參數(shù)形式,一種以Key-Value的鍵值對形式保存數(shù)據(jù)的方式,Android內(nèi)置的,一般應(yīng)用的配置信息,推薦使用此種方式保存。

  • Internal Storage:使用Android設(shè)備自帶的內(nèi)存存儲數(shù)據(jù)。

  • External Storage:使用外部存儲設(shè)備存儲數(shù)據(jù),一般是指Sdcard。

  • SQLite Databases:以SQLite數(shù)據(jù)庫存儲結(jié)構(gòu)化的數(shù)據(jù)。

  1. SharedPreferences

也是一種輕型的數(shù)據(jù)存儲方式,它的本質(zhì)是基于XML文件存儲key-value鍵值對數(shù)據(jù),通常用來存儲一些簡單的配置信息。其存儲位置在/data/data/<包名>/shared_prefs目錄下。SharedPreferences對象本身只能獲取數(shù)據(jù)而不支持存儲和修改,存儲修改是通過Editor對象實現(xiàn)。實現(xiàn)SharedPreferences存儲的步驟如下:

一、根據(jù)Context獲取SharedPreferences對象

二、利用edit()方法獲取Editor對象。

三、通過Editor對象存儲key-value鍵值對數(shù)據(jù)。

四、通過commit()方法提交數(shù)據(jù)。


賦值:

putBoolean(KEY_SHOW_DIALOG_AT_START, false)

取值:

getBoolean(KEY_SHOW_DIALOG_AT_START,false);

SharedPreferences案例分析:

  1. 加進一檢查框

       android:id="@+id/cbSent"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:layout_alignLeft="@+id/textView1"

       android:layout_below="@+id/textView1"

       android:layout_marginTop="60dp"

       android:text="測試語句"/>

  1. 定義三變量

private CheckBox cbSent;

  private SharedPreferences sp;

  privatestaticfinal String KEY_SHOW_DIALOG_AT_START = "showDialog";

  1. onCreate中添加

     sp = getSharedPreferences("mysp", Context.MODE_PRIVATE);

     cb = (CheckBox) findViewById(R.id.cb);

     cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

         @Override

         publicvoid onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            Editor e = sp.edit();

            e.putBoolean(KEY_SHOW_DIALOG_AT_START, isChecked);

            e.commit();

         }

     });

     cb.setChecked(sp.getBoolean(KEY_SHOW_DIALOG_AT_START, false));

     if (cb.isChecked()) {

            new AlertDialog.Builder(this).setTitle("標(biāo)題").setMessage("顯示語句么?").setPositiveButton("關(guān)閉", null).show();

     }

  1. 內(nèi)部存儲

Internal Storage

內(nèi)部存儲,在Android中,開發(fā)者可以直接使用設(shè)備的內(nèi)部存儲器中保存文件,默認(rèn)情況下,以這種方式保存的和數(shù)據(jù)是只能被當(dāng)前程序訪問,在其他程序中是無法訪問到的,而當(dāng)用戶卸載該程序的時候,這些文件也會隨之被刪除。

使用內(nèi)部存儲保存數(shù)據(jù)的方式,基本上也是先獲得一個文件的輸出流,然后以write()的方式把待寫入的信息寫入到這個輸出流中,最后關(guān)閉流即可,這些都是Java中IO流的操作。具體步驟如下:

  • 使用Context.openFileOutput()方法獲取到一個FileOutputStream對象。

  • 把待寫入的內(nèi)容通過write()方法寫入到FileOutputStream對象中。

  • 最后使用close()關(guān)閉流。

    上面介紹的Context.openFileOutput()方法有兩個重載函數(shù),它們的簽名分別是:

  • FileOutputStream openFileOutput(Stringname):以MODE_PRIVATE的模式打開name文件。

  • FileOutputStream openFileOutput(Stringname,int mode):以mode的模式打開name文件。

    上面第二個重載函數(shù)中,mode為一個int類型的數(shù)據(jù),這個一般使用Context對象中設(shè)置好的常量參數(shù),有如下幾個:

  • MODE_APPEND:以追加的方式打開一個文件,使用此模式寫入的內(nèi)容均追加在原本內(nèi)容的后面。

  • MODE_PRIVATE:私有模式(默認(rèn)),如果文件已經(jīng)存在會重新創(chuàng)建并替換原文件,如果不存在直接創(chuàng)建。

  • MODE_WORLD_READABLE:以只讀的方式打開文件。

  • MODE_WORLD_WRITEABLE:以只寫的方式打開文件。

    還有幾個方法需要特別注意一下,這幾個方法對于文件關(guān)系提供了更好的支持,配合上面介紹的方式,就可以對文件的數(shù)據(jù)進行常規(guī)的CRUD操作(增刪改查),方法如下:

  • File getFIlesDir():獲取文件系統(tǒng)的絕對路徑。

  • boolean deleteFile(String name):刪除一個指定文件名為name的文件。

  • String[] fileList():當(dāng)前應(yīng)用內(nèi)部存儲路徑下的所有文件名。

Internal Storage案例分析:

1)加進編輯和命令按鈕

       android:gravity="top"

       android:id="@+id/et"

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"

       android:layout_weight="1"/>

   

       android:id="@+id/btnSave"

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"

       android:text="保存" />

2)讀取數(shù)據(jù)

  privatevoid readSavedText(){

     try {

         InputStream is = openFileInput("data");

         byte[] bytes = newbyte[is.available()];

         is.read(bytes);

         is.close();

         String str = new String(bytes,"utf-8");

         et.setText(str);

     } catch (FileNotFoundException e) {

         e.printStackTrace();

     } catch (IOException e) {

         e.printStackTrace();

     }

  }

3保存數(shù)據(jù)

privatevoid saveCurrentText(){

     try {

         OutputStream os = openFileOutput("data", Context.MODE_PRIVATE);

         os.write(et.getText().toString().getBytes("utf-8"));

         os.flush();

         os.close();

         Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();

         return;

     } catch (FileNotFoundException e) {

         e.printStackTrace();

     } catch (UnsupportedEncodingException e) {

         e.printStackTrace();

     } catch (IOException e) {

         e.printStackTrace();

     }

     Toast.makeText(this, "保存失敗", Toast.LENGTH_SHORT).show();

  }

4)開始讀取數(shù)據(jù)和定義保存

et = (EditText) findViewById(R.id.et);

     btnSave = (Button) findViewById(R.id.btnSave);

       readSavedText();

     btnSave.setOnClickListener(new View.OnClickListener() {

         @Override

         publicvoid onClick(View v) {

            saveCurrentText();

         }

     });

關(guān)于“Android開發(fā)中如何實現(xiàn)數(shù)據(jù)存儲”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


新聞標(biāo)題:Android開發(fā)中如何實現(xiàn)數(shù)據(jù)存儲-創(chuàng)新互聯(lián)
新聞來源:http://weahome.cn/article/echgo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部