下面是读取本地数据源的一个方法,可能你会觉得不复杂,。。。但是对于新手来讲还是有帮助的!!!!以下第一个是metro开发中适用!!
/// <summary>
/// 异步读取数据源文件
/// </summary>
/// <returns>返回你的自定义类型集合</returns>
public static async Task<ObservableCollection<ObjectBean>> AsyncReadTxt()
{
StorageFolder InstallationFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
string CountriesFile = @"Assets\yourtxt.txt";
StorageFile storageFile = await InstallationFolder.GetFileAsync(CountriesFile);
IList<String> fileContent = await FileIO.ReadLinesAsync(storageFile, UnicodeEncoding.Utf8);
ObservableCollection<ObjectBean> result_objs = new ObservableCollection<ObjectBean>();
if (fileContent != null && fileContent.Count > 0)
{
foreach (String str in fileContent)
{
ObjectBean templat_obj = new ObjectBean();
String[] arr_txt = str.Trim().Split(';');//假设你的文本行是用分号隔开的-如:aaaa;bbbb;cccc
for (int i = 0; i < arr_city.Length; i++)
{
switch (i)
{
case 0:
templat_obj.Name = arr_txt[i];
break;
case 1:
templat_city.Address= arr_txt[i];
break;
case 2:
templat_city.Email= arr_txt[i];
break;
}
}
result_objs.Add(templat_obj);
}
}
return result_objs;
}
接下来是wp8开发中的方法,和win8上的代码有些异同!!!见代码思考吧!!!哈哈!
/// <summary>
/// 异步读取数据源文件-
/// </summary>
/// <returns>返回你的自定义集合类</returns>
public static async Task<ObservableCollection<ObjectBean>> AsyncReadTxtForWp8()
{
///CSMBP-WP8;component/
StorageFile storageFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/yourtxt.txt",UriKind.Absolute));
ObservableCollection<String> fileContent = new ObservableCollection<String>();
//IStorageFolder applicationFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
//IStorageFile storageFile = await applicationFolder.GetFileAsync(CountriesFile);
IRandomAccessStream accessStream = await storageFile.OpenReadAsync();
using (Stream stream = accessStream.AsStreamForRead((int)accessStream.Size))
{
byte[] content = new byte[stream.Length];
await stream.ReadAsync(content, 0, (int)stream.Length);
String text = Encoding.UTF8.GetString(content, 0, content.Length);
String[] textArray = text.Split('\n');
foreach (String str in textArray)
{
fileContent.Add(str);
}
}
if (fileContent != null && fileContent.Count > 0)
{
}
}