xamarin学习笔记A09(安卓数据简单存储)

本文介绍了Android平台上的三种数据存储方式:文件存储、SharedPreferences存储及SQLite数据库存储。详细讲解了每种存储方式的具体实现方法,包括如何保存和读取数据。

(每次学习一点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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值