Windows Phone中FileIO,StreamReader以及StreamWriter类(仅针对文本文件)

之前提及到应用数据文件的种类和区别,那么既然知道了如何获取应用数据文件,那么接下来自然是对文件和文件夹

的相关处理操作了。文件夹类对应的是StorageFolder类,文件类对应的是StorageFile类。至于文件夹和文件的相关

属性和方法就不做说明了,MSDN上都有详细的介绍,也就是新建,删除,移动、取得,重命名等等这些操作,依据

名称即可知道属性和方法是怎样的。重点是对文件的读写操作。


对文件的操作无外乎文件的读写操作:

可以使用StreamReader类、StreamWriter类以及FileIO类读取和写入文件的内容。

a. FileIO类是专门为IStorageFile类型的对象表示的读取和写入文件提供帮助器方法。此类是一个静态类,需直接调

用其静态的文件读写方法进行操作,分别为FileIO.ReadTextAsync(file)和FileIO.WriteTextAsync(file)。

b. StreamReader类和StreamWriter类可以读取和写入标准文本文件的各行信息。默认编码为UTF-8。这边要注意读

取和写入的是标准的文本文件,并不包括图片等其他非文本文件。


两者示例伪代码如下:

FileIO类写入文件:

//获取本地文件夹根目录

IStorageFolder local = ApplicationData.Current.LocalFolder;

//在文件夹中创建文件,如果文件已经存在则替换掉

IStorageFile storageFile = await local.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);

//使用FileIO类将文件内容写入文件

await FileIO.WriteTextAsync(storageFile, content);

StreamReader类读取文件:

IStorageFolder local = ApplicationData.Current.LocalFolder;

IStorageFile file = await local.GetFileAsync(filename);

//打开文件获取文件的数据流

IRandomAccessStream accessStream = await file.OpenReadAsync();

//使用StreamReader读取文件的内容,需要将IRandomAccessStream对象转化成Stream对象来初始化

StreamReader对象

using (StreamReader streamReader = new

StreamReader(accessStream.AsStreamForRead((int)accessStream.Size)))

{
    content = streamReader.ReadToEnd();
}

除了上述两种方法,还可以使用WindowsRuntimeStorageExtension类提供的实现IStorageFolder和IStorageFile

接口的类的使用方法来进行文件夹和文件的读写操作。

这些扩展方法包括OpenStreamForReadAsync和OpenStreamForWriteAsync方法,示例如下:

byte[] fileBytes = Encoding.UTF8.GetBytes(content,ToCharArray());

using(var s = await file.OpenStreamForWriteAsync())
{
    s.Write(fileBytes,0,fileBytes.Length);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值