• 快速构建Windows 8风格应用26本地应用数据


    本篇博文主要介绍如何获取应用的设置和文件容器、如何将数据写入设置、如何从设置中获取数据、如何删除设置中数据、如何将数据写入文件、如何从文件中获取数据。

    当应用安装时,系统会为设置和文件等应用数据提供它自己的每用户数据存储。我们不需要知道这些数据存在哪里或如何存储,因为系统会负责管理物理存储工作。我们只需使用应用数据API就可以了。

    本地应用数据一般用于当前设备数据的持久化,并且本地数据没有限制大小,通常情况使用本地数据存储大型数据集。

    如何获取应用的设置和文件容器

    1.使用ApplicationData.LocalSettings属性可以获取ApplicationDataContainer 对象中的设置。

    Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

    2.使用 ApplicationData.LocalFolder 属性可以获取StorageFolder 对象中的文件。

    Windows.Storage.ApplicationDataContainer localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

    如何将数据写入设置

    我们可以通过三种方式将数据写入设置。

    1.使用ApplicationDataContainer.Values属性。

    localSettings.Values["exampleSetting"] = "Hello Windows";

    使用键-值对的方式。

    2.使用ApplicationDataCompositeValue对象,进行一个复合的设置。

    Windows.Storage.ApplicationDataCompositeValue composite = new Windows.Storage.ApplicationDataCompositeValue();
    composite["intVal"] = 1;
    composite["strVal"] = "string";
     
    localSettings.Values["exampleCompositeSetting"] = composite;

    3.使用ApplicationDataContainer.CreateContainer方法创建设置容器,将数据添加到容器中。

    Windows.Storage.ApplicationDataContainer container = 
       localSettings.CreateContainer("exampleContainer", Windows.Storage.ApplicationDataCreateDisposition.Always);
     
    if (localSettings.Containers.ContainsKey("exampleContainer"))
    {
       localSettings.Containers["exampleContainer"].Values["exampleSetting"] = "Hello Windows";
    }

    其中Windows.Storage.ApplicationDataCreateDisposition的枚举值Always表示该容器不存在的话进行创建。

    如何从设置中获取数据

    1.使用ApplicationDataContainer.Values属性获取数据。

    Object value = localSettings.Values["exampleSetting"];

    2.使用ApplicationDataContainer.Values属性获取复合设置中数据。

    Windows.Storage.ApplicationDataCompositeValue composite = 
       (Windows.Storage.ApplicationDataCompositeValue)localSettings.Values["exampleCompositeSetting"];
     
    if (composite == null)
    {   
    }
    else
    {   
    }

    3.使用ApplicationDataContainer.Values属性获取容器中数据

    bool hasContainer = localSettings.Containers.ContainsKey("exampleContainer");
    bool hasSetting = false;
     
    if (hasContainer)
    {
       hasSetting = localSettings.Containers["exampleContainer"].Values.ContainsKey("exampleSetting");
    }

    如何删除设置中数据

    1.使用ApplicationDataContainerSettings.Remove方法可以删除数据、复合数据设置以及容器设置。

    localSettings.Values.Remove("exampleSetting");

    如何将数据写入文件

    通常我们会使用Windows.Storage.StorageFolder.CreateFileAsyncWindows.Storage.FileIO.WriteTextAsync在本地数据存储中创建或更新文件。

    async void WriteTimestamp()
    {
       Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter = 
           new Windows.Globalization.DatetimeFormatting.DateTimeFormatter("longtime");
     
       StorageFile sampleFile = await localFolder.CreateFileAsync("dataFile.txt", 
           CreateCollisionOption.ReplaceExisting);
       await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTime.Now));
    }

    其中CreationCollisionOption中的ReplaceExisting值表示若该文件不存在就创建,若存在就替换。

    如何从文件中获取数据

    通常我们会使用Windows.Storage.StorageFolder.GetFileAsyncWindows.Storage.StorageFile.GetFileFromApplicationUriAsyncWindows.Storage.FileIO.ReadTextAsync在本地数据存储中打开或读取文件。

    async void ReadTimestamp()
    {
       try
       {
          StorageFile sampleFile = await localFolder.GetFileAsync("dataFile.txt");
          String timestamp = await FileIO.ReadTextAsync(sampleFile);     
       }
       catch (Exception)
       {      
       }
    }

    MSDN中提供相关示例代码:Application data sample

  • 相关阅读:
    HTTP 状态码大全
    Redis Cluster数据分片机制
    redis 哨兵集群原理及部署
    python 连接 redis cluster 集群
    python连接redis哨兵集群
    Ubuntu设置终端操作行为的回收站
    实用Golang库
    实用的Python库
    Python 生成 JWT(json web token) 及 解析方式
    django 进行语言的国际化及在后台进行中英文切换
  • 原文地址:https://www.cnblogs.com/wzk89/p/2774006.html
Copyright © 2020-2023  润新知