如何搭建一個(gè)論壇網(wǎng)站企業(yè)網(wǎng)站設(shè)計(jì)圖片
1,文件讀寫方式的數(shù)據(jù)存儲(chǔ)
下面是一個(gè)簡單的示例,演示如何在Android中使用內(nèi)部存儲(chǔ)來保存和讀取文件:
保存文件:
try { String data = "這是要保存的數(shù)據(jù)"; FileOutputStream fos = openFileOutput("myFile", Context.MODE_PRIVATE); OutputStreamWriter osw = new OutputStreamWriter(fos); BufferedWriter wr= new BufferedWriter (osw); wr.write(data );wr.close();
} catch (Exception e) { e.printStackTrace();
}
在這個(gè)例子中,我們使用openFileOutput方法來打開一個(gè)文件輸出流。我們傳遞兩個(gè)參數(shù)給這個(gè)方法:文件名和模式。模式可以是Context.MODE_PRIVATE(默認(rèn)),Context.MODE_WORLD_READABLE或Context.MODE_WORLD_WRITABLE。
讀取文件:
try { FileInputStream fis = openFileInput("myFile"); InputStreamReader isr = new InputStreamReader(fis); BufferedReader br = new BufferedReader(isr); String line; while ((line = br.readLine()) != null) { Log.e("DATA", line); } fis.close();
} catch (Exception e) { e.printStackTrace();
}
在這個(gè)例子中,我們使用openFileInput方法來打開一個(gè)文件輸入流。然后,我們創(chuàng)建一個(gè)InputStreamReader和一個(gè)BufferedReader來讀取文件的內(nèi)容。最后,我們使用readLine方法來逐行讀取文件的內(nèi)容。
注意:文件都是默認(rèn)存儲(chǔ)到/data/data/package name/files/目錄下。
注意:在Android 10(API級(jí)別29)及更高版本中,對(duì)于內(nèi)部存儲(chǔ),Google開始限制可以訪問的數(shù)據(jù)。你可能需要考慮使用其他策略,如使用外部存儲(chǔ)或使用SQLite數(shù)據(jù)庫。
2,sharedpreferences方式讀寫數(shù)據(jù)
在Android中,SharedPreferences是一個(gè)輕量級(jí)存儲(chǔ)類,主要用于保存一些基本類型的數(shù)據(jù),如String,Int,Boolean等。它提供了簡單的讀寫接口,允許開發(fā)人員存儲(chǔ)和獲取數(shù)據(jù)。以下是如何使用SharedPreferences來讀寫數(shù)據(jù)的示例代碼:
寫入數(shù)據(jù):
SharedPreferences sharedPreferences = getSharedPreferences("my_preferences", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit(); // 存儲(chǔ)一個(gè)字符串
editor.putString("key1", "value1");
// 存儲(chǔ)一個(gè)整數(shù)
editor.putInt("key2", 123);
// 存儲(chǔ)一個(gè)布爾值
editor.putBoolean("key3", true); // 提交編輯
editor.commit();
讀取數(shù)據(jù)
SharedPreferences sharedPreferences = getSharedPreferences("my_preferences", MODE_PRIVATE); // 讀取一個(gè)字符串
String value1 = sharedPreferences.getString("key1", "default_value");
// 讀取一個(gè)整數(shù)
int value2 = sharedPreferences.getInt("key2", 0);
// 讀取一個(gè)布爾值
boolean value3 = sharedPreferences.getBoolean("key3", false);
注意:getSharedPreferences方法的第一個(gè)參數(shù)是偏好設(shè)置文件的名稱,如果該名稱不存在,系統(tǒng)將創(chuàng)建一個(gè)新的。第二個(gè)參數(shù)是模式,通常我們使用MODE_PRIVATE或Context.MODE_PRIVATE。如果使用MODE_WORLD_READABLE或Context.MODE_WORLD_READABLE,則從Android 4.2(API級(jí)別17)開始已經(jīng)被廢棄。
注意:sharedpreferences是使用鍵值對(duì)的方式存儲(chǔ)數(shù)據(jù)。
默認(rèn)的存儲(chǔ)路徑/data/data/package name/shared_pref/目錄下。
使用xml的格式來管理數(shù)據(jù):
完整的參考用例代碼:
以下是在Android中使用SharedPreferences的完整參考代碼用例。這個(gè)例子展示了如何使用SharedPreferences來存儲(chǔ)和讀取用戶的偏好設(shè)置。
寫入數(shù)據(jù):
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.Context;
import android.preference.PreferenceManager; public class MyActivity extends Activity { private SharedPreferences sharedPreferences; private Editor editor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 獲取SharedPreferences對(duì)象,使用該應(yīng)用程序的上下文(this)初始化它。 sharedPreferences = getSharedPreferences("my_preferences", MODE_PRIVATE); editor = sharedPreferences.edit(); // 存儲(chǔ)一個(gè)字符串 editor.putString("key1", "value1"); // 存儲(chǔ)一個(gè)整數(shù) editor.putInt("key2", 123); // 存儲(chǔ)一個(gè)布爾值 editor.putBoolean("key3", true); // 提交編輯,將數(shù)據(jù)保存到SharedPreferences中。 editor.commit(); }
}
讀取數(shù)據(jù):
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.preference.PreferenceManager;
import android.widget.TextView; public class MyActivity extends Activity { private SharedPreferences sharedPreferences; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = findViewById(R.id.textView); // 獲取SharedPreferences對(duì)象,使用該應(yīng)用程序的上下文(this)初始化它。 sharedPreferences = getSharedPreferences("my_preferences", MODE_PRIVATE); // 讀取一個(gè)字符串,如果找不到鍵,則返回默認(rèn)值"default_value" String value1 = sharedPreferences.getString("key1", "default_value"); textView.setText("Value of key1: " + value1); // 讀取一個(gè)整數(shù),如果找不到鍵,則返回默認(rèn)值0 int value2 = sharedPreferences.getInt("key2", 0); textView.append("\nValue of key2: " + value2); // 讀取一個(gè)布爾值,如果找不到鍵,則返回默認(rèn)值false boolean value3 = sharedPreferences.getBoolean("key3", false); textView.append("\nValue of key3: " + value3); }
}