(每次学习一点xamarin就做个学习笔记和视频来加深记忆巩固知识)
如有不正确的地方,请帮我指正。
数据存储简介
在Android系统中有3种方式保存数据。文件存储,SharedPreference存储和SQLite数据库存储。
文件存储
文件存储的数据一般是很简单的、未经任何处理的数据。所有文件都是默认存储到/data/data/你的packagename/files/这个目录下的。
以下是一段将数据保存在文件中的代码:
public void SaveData(string s)//(文件存储)保存
{
Stream stream = null;
StreamWriter writer = null;
try
{
stream = this.OpenFileOutput("MyData", Android.Content.FileCreationMode.Private);
writer = new StreamWriter(stream);
writer.Write(s);
m_EditText.Text = "";
}
catch (IOException e)
{
Log.Error("IOException", e.Message);
}
finally
{
try
{
if (writer != null)
writer.Close();
}
catch (IOException e)
{
Log.Error("IOException", e.Message);
}
}
可以看到主要用到了Stream类,StreamWrite类和当前上下文的OpenFileOutput方法。
OpenFileOutput方法中第一个参数”MyData”是文件名,第二个参数FileCreationMode.Private说明当文件同名时,会覆盖原文件中的内容,如果是FileCreationMode.Append则会追加内容。
以后是一段从文件中读取数据的代码:
public string ReadData()//(文件存储)读取
{
Stream stream = null;
StreamReader reader = null;
string str = "";
try
{
stream = this.OpenFileInput("MyData");
reader = new StreamReader(stream);
string s = "";
while ((s = reader.ReadLine()) != null)
{
str += s;
}
}
catch (IOException e)
{
Log.Error("IOException", e.Message);
}
finally
{
if (reader != null)
{
try
{
reader.Close();
}
catch (IOException e)
{
Log.Error("IOException", e.Message);
}
}
}
return str;
}
可以看到先通过OpenFileInput方法打开文件并返回一个Stream对象,
再把这个对象做为StreamReader的构造方法参数来得到StreamReader对象,最后用ReadLine()方法来一行一行读取文件中的数据。
SharedPereference存储
这种存储是使用键值对的方式来存储数据的。文件都是存放在/data/data/你的packagename/shared_prefs/这个目录下的。
下面是一段这种存储的代码:
public void SaveData2()//(SharedPreferences存储)保存
{
ISharedPreferences sp = this.GetSharedPreferences("abc", FileCreationMode.Append);
ISharedPreferencesEditor editor = sp.Edit();
editor.PutInt("BookId", 1);
editor.PutString("BookName", "C#6.0入门");
editor.PutFloat("BookPrice", 58.7f);
editor.Apply();
}
可以看到,先是调用上下文的GetSharedPreferences方法创建(已存在则打开)名为abc的文件并返回一个ISharedPreferences接口,再通过这个接口的Edit方法得到ISharedPreferencesEditor接口,再通过PutInt等方法添加要保存的数据,最后调用Apply方法提交数据。
下面是一段读取数据的代码:
public string ReadData2()//(SharedPreferences)读取
{
ISharedPreferences sp = this.GetSharedPreferences("abc", FileCreationMode.Private);
int bookId = sp.GetInt("BookId", 0);
string bookName = sp.GetString("BookName", "");
float bookPrice = sp.GetFloat("BookPrice", 0);
return string.Format("BookID={0},BookName={1},BookPrice={2}", bookId, bookName, bookPrice);
}
完整代码和视频在我上传的优快云资源中http://download.youkuaiyun.com/download/junshangshui/9926953
本文介绍了Android平台上的三种数据存储方式:文件存储、SharedPreferences存储及SQLite数据库存储。详细讲解了每种存储方式的具体实现方法,包括如何保存和读取数据。
9070

被折叠的 条评论
为什么被折叠?



