博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用WP7独立存储IsolatedStorageFile读写文件
阅读量:6956 次
发布时间:2019-06-27

本文共 2419 字,大约阅读时间需要 8 分钟。

最近手上的一个项目需要用到IsolatedStorageFile来做数据持久化存储,使用的时候遇到几个问题总结一下

首先写文件的代码:

IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();                //如果是复写文件,那么在写之前最好把文件删掉,不然如果这次写入的文件大小,小于文件本身的大小,那么之前文件的数据还是存在的,在读取的时候就会出问题.                if (myIsolatedStorage.FileExists(filename) == true)                {                    myIsolatedStorage.DeleteFile(filename);                }                using (IsolatedStorageFileStream stream = myIsolatedStorage.OpenFile(filename, FileMode.CreateNew))                {                    List
favlist = new List
(); foreach (var i in coll) { favlist.Add(i); } using (var str = new StreamWriter(stream)) { str.Write(JsonConvert.SerializeObject(favlist)); } }

代码中的注释部分,一定要慎重.复写之前最好删掉文件,不然会因为数据不正确而导致读取的时候出错.而且这类错误很难排查.

然后是读文件的代码:

IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();                if (myIsolatedStorage.FileExists("fav.json") == true)                {                    //打开文件                    IsolatedStorageFileStream stream = myIsolatedStorage.OpenFile("fav.json", FileMode.Open);                    try                    {                        using (var sr = new StreamReader(stream))                        {                            //读取文件                            string result = sr.ReadToEnd();                            result = result.Trim();                            sr.Close();                            //反序列化为对象                            List
Data = (List
)JsonConvert.DeserializeObject
>(result); foreach (var d in Data) { //添加到listview数据源 FavData.Add(d); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { stream.Close(); } }

 

来自 

 

转载于:https://www.cnblogs.com/spidernet/archive/2012/04/19/2456439.html

你可能感兴趣的文章
课后作业3:个人项目(词频统计及其效能分析)
查看>>
对libdbus库函数使用的理解
查看>>
AC日记——货车运输 codevs
查看>>
Android中LOG机制详解(上)
查看>>
AC日记——有趣的跳跃 openjudge 1.6 07
查看>>
AC日记——琪露诺 洛谷 P1725
查看>>
在 Windows Azure 上设计大型服务的最佳做法
查看>>
从BRD到上线:一个需求的完整生命周期
查看>>
C++ STL(1)
查看>>
Highchart的一些总结
查看>>
Ajax编程相对路径与绝对路径
查看>>
机器学习——超参数搜索
查看>>
关于golang中包(package)的二三事儿
查看>>
C#中dynamic的正确用法 以及 typeof(DynamicSample).GetMethod("Add");
查看>>
Targeted Server in Myeclipse
查看>>
将指定路径下文件全部删除,复制并移动整个文件夹啊
查看>>
掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求
查看>>
Java 类的继承详解
查看>>
如何知道btree树的高度
查看>>
.NET(C#)主流的ORM框架
查看>>