溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android中如何保存數(shù)據(jù)

發(fā)布時(shí)間:2022-04-16 15:55:29 來(lái)源:億速云 閱讀:244 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Android中如何保存數(shù)據(jù)”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Android中如何保存數(shù)據(jù)”文章能幫助大家解決問(wèn)題。

Preferences從其保存數(shù)據(jù)的結(jié)構(gòu)來(lái)分析,這是一個(gè)相對(duì)較輕量級(jí)的存儲(chǔ)數(shù)據(jù)的方法。類似于我們常用的ini文件保存軟件初始化設(shè)置,同樣在Android平臺(tái)常用于存儲(chǔ)較簡(jiǎn)單的參數(shù)設(shè)置。例如,可以通過(guò)它保存上一次用戶所作的修改或者自定義參數(shù)設(shè)定,當(dāng)再次啟動(dòng)程序后依然保持原有的設(shè)置。

通過(guò)Context.getSharedPreferences()方法來(lái)讀寫數(shù)值,這個(gè)方法通過(guò)設(shè)置name來(lái)使得同一個(gè)程序內(nèi)的其它模塊共享數(shù)據(jù)。如果不需要與其它模塊共享數(shù)據(jù),可以使用Activity.getPreferences()方法保持?jǐn)?shù)據(jù)私有。需要著重強(qiáng)調(diào)一點(diǎn),無(wú)法直接在多個(gè)程序間共享Preferences數(shù)據(jù)(不包括使用Content Providers)。

通過(guò)一個(gè)實(shí)例來(lái)了解實(shí)際使用方法:

import android.app.Activity;  import android.content.SharedPreferences;  public class Calc extends Activity {  public static final String PREFS_NAME = "MyPrefsFile";  . . . .   Override  protected void onCreate(Bundle state){  super.onCreate(state);  . . . .  // Restore preferences  SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);  boolean silent = settings.getBoolean("silentMode", false);  setSilent(silent);  }  @Override  protected void onStop(){  super.onStop();  // Save user preferences. We need an Editor object to  // make changes. All objects are from android.context.Context  SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);  SharedPreferences.Editor editor = settings.edit();  editor.putBoolean("silentMode", mSilentMode);  // Don't forget to commit your edits!!!  editor.commit();  }  }

Files從這是第二種方法,可以在設(shè)備本身的存儲(chǔ)設(shè)備或者外接的存儲(chǔ)設(shè)備中創(chuàng)建用于保存數(shù)據(jù)的文件。同樣在默認(rèn)的狀態(tài)下,文件是不能在不同的程序間共享。

寫文件:調(diào)用Context.openFileOutput()方法根據(jù)指定的路徑和文件名來(lái)創(chuàng)建文件,這個(gè)方法會(huì)返回一個(gè)FileOutputStream對(duì)象。

讀取文件:調(diào)用Context.openFileInput()方法通過(guò)制定的路徑和文件名來(lái)返回一個(gè)標(biāo)準(zhǔn)的Java FileInputStream對(duì)象。
(注意:在其它程序中將無(wú)法應(yīng)用相同的路徑和文件名來(lái)操作文件)

另外編譯程序之前,在res/raw/tempFile中建立一個(gè)static文件,這樣可以在程序中通過(guò)Resources.openRawResource (R.raw.myDataFile)方法同樣返回一個(gè)InputStream對(duì)象,直接讀取文件內(nèi)容。

Databases在Android API中包括了應(yīng)用SQLite databases的接口,每個(gè)程序所創(chuàng)建的數(shù)據(jù)庫(kù)都是私有的,換句話說(shuō),程序間無(wú)法相互訪問(wèn)對(duì)方的數(shù)據(jù)庫(kù)。

在程序中創(chuàng)建SQLiteDatabase對(duì)象,其中包含了大部分與database交互的方法,例如:讀取數(shù)據(jù)或者管理當(dāng)前數(shù)據(jù)。可以應(yīng)用SQLiteDatabase和其subClassSQLiteOpenHelper的create()方法來(lái)創(chuàng)建新的數(shù)據(jù)庫(kù)。

對(duì)于SQLitedatabase而言,其強(qiáng)大和方便的功能為Android提供了強(qiáng)有力的存儲(chǔ)功能。特別是存儲(chǔ)一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu),例如:Android特別為通訊錄創(chuàng)建了特有的數(shù)據(jù)類型,其中包含了非常多的子集而且涵蓋了大部分的數(shù)據(jù)類型 “First Name” “Last Name” “PhoneNumber”和“Photo”等。

Android可以通過(guò)Sqlite3 database tool來(lái)查看指定數(shù)據(jù)庫(kù)中表的內(nèi)容,直接運(yùn)行SQL命令來(lái)快速便捷的直接操作SQLite database。
數(shù)據(jù)庫(kù)在設(shè)備中保存的地址是 /data/data/package_name/databases

Network通過(guò)網(wǎng)絡(luò)來(lái)獲取和保存數(shù)據(jù)資源,這個(gè)方法需要設(shè)備保持網(wǎng)絡(luò)連接狀態(tài),所以相對(duì)存在一些限制。下面列出了兩個(gè)用于相關(guān)操作的類:

java.net.*  android.net.*

關(guān)于“Android中如何保存數(shù)據(jù)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI