这是从资源文件中获取 Stream 的正确/唯一方式吗?
Uri uri = new Uri(fullPath);
StorageFile storageFile =
await Windows.Storage.StorageFile.
GetFileFromApplicationUriAsync(uri);
IRandomAccessStreamWithContentType randomAccessStream =
await storageFile.OpenReadAsync();
IInputStream resourceStream = (IInputStream)
randomAccessStream.GetInputStreamAt(0);
我的其他资源(http和本地存储)都返回一个 Stream 对象,但是必须写 if-else 代码来使用其中一个对象,这很麻烦。
我也尝试将其转换为 MemoryStream,但我甚至找不到一种方法来获取字节... 请帮帮我。
uint size = (uint)randomAccessStream.Size;
IBuffer buffer = new Windows.Storage.Streams.Buffer(size);
await randomAccessStream.ReadAsync(buffer, size,
InputStreamOptions.None);
Stream stream = new MemoryStream(buffer); // error takes byte[] not IBuffer
当从资源中读取时,使用IInputStream.ReadAsync()方法:
http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.streams.iinputstream.readasync.aspx而Stream.Read()和Stream.ReadAsync()方法如下所示:
http://msdn.microsoft.com/en-us/library/system.io.stream.read.aspx
和
http://msdn.microsoft.com/en-us/library/hh137813.aspx
谢谢