欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

winrt 中randomaccessstreamreference的运用

更新时间: 2014-01-05 02:25:22 责任编辑: Author_N1

 

WinRT 中RandomAccessStreamReference的使用

      RandomAccessStreamReference是WinRT中的一个类,从API文档中,可以得知,它的作用是为一个文件提供随机访问的输入或者输出流。对比发现,只要Windows.Storage.Streams空间中带个Reference的,都是称为提供某某流,相当于一个流生成类,目前除了接口定义出的IInputStreamReference、IRandomAccessStreamReference以及上诉的RandomAccessStreamReference(对IRandomAccessStreamReference的实现),就没有看见其他的了,奇怪的是没有对应的IOutputStreamRefrence。

     具体来看RandomAccessStreamReference类,它提供了静态函数三个:CreateFromFile、CreateFromStream、CreateFromUri,以及一个实现了IRandomAccessStreamReference接口的OpenReadAsync。三个静态函数的意思就是使用不同的方式,将file变成输入输出流,当然,使用之前,你需要打开它,使用范例如下:

 //Uri uri = new Uri("http://www.charlespetzold.com/pw6/PetzoldJersey.jpg");
            Uri uri = new Uri("http://www.google.com.hk");
            RandomAccessStreamReference streamRef = RandomAccessStreamReference.CreateFromUri(uri);

            // Create a buffer for reading the stream
            Windows.Storage.Streams.Buffer buffer = null;

            // Read the entire file
            using (IRandomAccessStreamWithContentType fileStream = await streamRef.OpenReadAsync())
            {
                buffer = new Windows.Storage.Streams.Buffer((uint)fileStream.Size);
                await fileStream.ReadAsync(buffer, (uint)fileStream.Size, InputStreamOptions.None);
            }

 注意以上代码,Open返回的是一个IRandomAccessStreamWithContentType 接口,该接口继承了流输入输出接口和随机访问接口(你就可以把它看成一个.NET中的Stream),以及IContentTypeProvider接口,最后的这个Content有关的接口,其实里面只有一个string类型的属性,叫作ContentType,顾名思义,也就是表示你加载的这个文件流的类型是什么。看我上面的那段代码,你可以断点查看fileStream中的ContentType的字串是什么,当我们使用jpg的Uri时,它的字符串是 "image/pjpeg",若是一个google的首页网址,那么字符串是"text/html",所以,竟然它说是为文件提供流,那么也就是标志这个文件是什么类型的,仅此而已,在开发过程中,我们往往是已经知道返回的文件应该是什么类型的了。

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:25:22
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9613/
本文WWW.DOC100.NET DOC100.NET版权所有。