您的位置:首页 > 其它

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

2014-09-23 14:33 507 查看
原文:快速构建Windows8风格应用26-本地应用数据


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

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

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

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

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

Windows.Storage.ApplicationDataContainerlocalSettings=Windows.Storage.ApplicationData.Current.LocalSettings;



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

Windows.Storage.ApplicationDataContainerlocalFolder=Windows.Storage.ApplicationData.Current.LocalFolder;



如何将数据写入设置

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

1.使用ApplicationDataContainer.Values属性。

localSettings.Values["exampleSetting"]="HelloWindows";



使用键-值对的方式。

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

Windows.Storage.ApplicationDataCompositeValuecomposite=newWindows.Storage.ApplicationDataCompositeValue();

[code]composite["intVal"]=1;
composite["strVal"]="string";


localSettings.Values["exampleCompositeSetting"]=composite;

[/code]

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


Windows.Storage.ApplicationDataContainercontainer=

[code]localSettings.CreateContainer("exampleContainer",Windows.Storage.ApplicationDataCreateDisposition.Always);

if(localSettings.Containers.ContainsKey("exampleContainer"))

{

localSettings.Containers["exampleContainer"].Values["exampleSetting"]="HelloWindows";

}

[/code]

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

如何从设置中获取数据

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


Objectvalue=localSettings.Values["exampleSetting"];



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


Windows.Storage.ApplicationDataCompositeValuecomposite=

[code](Windows.Storage.ApplicationDataCompositeValue)localSettings.Values["exampleCompositeSetting"];

if(composite==null)

{

}

else

{

}

[/code]

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


boolhasContainer=localSettings.Containers.ContainsKey("exampleContainer");

[code]boolhasSetting=false;

if(hasContainer)

{

hasSetting=localSettings.Containers["exampleContainer"].Values.ContainsKey("exampleSetting");

}

[/code]

如何删除设置中数据

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

localSettings.Values.Remove("exampleSetting");



如何将数据写入文件

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


asyncvoidWriteTimestamp()

[code]{
Windows.Globalization.DateTimeFormatting.DateTimeFormatterformatter=

newWindows.Globalization.DatetimeFormatting.DateTimeFormatter("longtime");


StorageFilesampleFile=awaitlocalFolder.CreateFileAsync("dataFile.txt",

CreateCollisionOption.ReplaceExisting);

awaitFileIO.WriteTextAsync(sampleFile,formatter.Format(DateTime.Now));

}

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

如何从文件中获取数据

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


asyncvoidReadTimestamp()

[code]{
try

{

StorageFilesampleFile=awaitlocalFolder.GetFileAsync("dataFile.txt");

Stringtimestamp=awaitFileIO.ReadTextAsync(sampleFile);

}

catch(Exception)

{

}

}

[/code]

MSDN中提供相关示例代码:Applicationdatasample。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: