Windows 8 学习笔记(八)--各种流之间的转换
2012-04-12 22:18
363 查看
今天在Stream与IrandomAccessStream之间转换时,感觉很纠结,所以干脆先把想到的一些场景都罗列了一下,希望下次再用的时候就不用这么毛手毛脚的了。。。
Stream转IRandomAccessStream
方法一:
byte[]bytes=StreamToBytes(stream);
InMemoryRandomAccessStreammemoryStream=newInMemoryRandomAccessStream();
DataWriterdatawriter=newDataWriter(memoryStream.GetOutputStreamAt(0));
datawriter.WriteBytes(bytes);
awaitdatawriter.StoreAsync();方法二:
varrandomAccessStream=newInMemoryRandomAccessStream();
varoutputStream=randomAccessStream.GetOutputStreamAt(0);
awaitRandomAccessStream.CopyAsync(stream.AsInputStream(),outputStream);
IRandomAccessStream转Stream
Streamstream=WindowsRuntimeStreamExtensions.AsStreamForRead(randomStream.GetInputStreamAt(0));
Ibuffer转Stream
Streamstream=WindowsRuntimeBufferExtensions.AsStream(buffer);
Stream转Ibuffer
MemoryStreammemoryStream=newMemoryStream();
if(stream!=null)
{
byte[]bytes=ReadFully(stream);
if(bytes!=null)
{
varbinaryWriter=newBinaryWriter(memoryStream);
binaryWriter.Write(bytes);
}
}
IBufferbuffer=WindowsRuntimeBufferExtensions.GetWindowsRuntimeBuffer(memoryStream,0,(int)memoryStream.Length);
Ibuffer转byte[]
byte[]bytes=WindowsRuntimeBufferExtensions.ToArray(buffer,0,(int)buffer.Length);
Byte[]转Ibuffer
WindowsRuntimeBufferExtensions.AsBuffer(bytes,0,bytes.Length);
Ibuffer转IrandomAccessStream
InMemoryRandomAccessStreaminStream=newInMemoryRandomAccessStream();
DataWriterdatawriter=newDataWriter(inStream.GetOutputStreamAt(0));
datawriter.WriteBuffer(buffer,0,buffer.Length);
awaitdatawriter.StoreAsync();
IrandomAccessStream转Ibuffer
Streamstream=WindowsRuntimeStreamExtensions.AsStreamForRead(randomStream.GetInputStreamAt(0));
MemoryStreammemoryStream=newMemoryStream();
if(stream!=null)
{
byte[]bytes=ReadFully(stream);
if(bytes!=null)
{
varbinaryWriter=newBinaryWriter(memoryStream);
binaryWriter.Write(bytes);
}
}
IBufferbuffer=WindowsRuntimeBufferExtensions.GetWindowsRuntimeBuffer(memoryStream,0,(int)memoryStream.Length);
IRandomAccessStream转FileInputStream
FileInputStreaminputStream=randomStream.GetInputStreamAt(0)asFileInputStream;
IRandomAccessStream转FileOutputStream
FileOutputStreamoutStream=randomStream.GetOutputStreamAt(0)asFileOutputStream;
Stream转byte[]
publicstaticbyte[]ConvertStreamTobyte(Streaminput)
{
byte[]buffer=newbyte[16*1024];
using(MemoryStreamms=newMemoryStream())
{
intread;
while((read=input.Read(buffer,0,buffer.Length))>0)
{
ms.Write(buffer,0,read);
}
returnms.ToArray();
}
}
Byte转Stream
publicStreamBytesToStream(byte[]bytes)
{
Streamstream=newMemoryStream(bytes);
returnstream;
}
Stream转MemoryStream
publicstaticMemoryStreamConvertStreamToMemoryStream(Streamstream)
{
MemoryStreammemoryStream=newMemoryStream();
if(stream!=null)
{
byte[]buffer=ReadFully(stream);
if(buffer!=null)
{
varbinaryWriter=newBinaryWriter(memoryStream);
binaryWriter.Write(buffer);
}
}
returnmemoryStream;
}应该还有些其它的场景,目前就想到这些,绕晕了都,恩恩…
Stream转IRandomAccessStream
IRandomAccessStream转Stream
Ibuffer转Stream
Stream转Ibuffer
if(stream!=null)
{
byte[]bytes=ReadFully(stream);
if(bytes!=null)
{
varbinaryWriter=newBinaryWriter(memoryStream);
binaryWriter.Write(bytes);
}
}
IBufferbuffer=WindowsRuntimeBufferExtensions.GetWindowsRuntimeBuffer(memoryStream,0,(int)memoryStream.Length);
Ibuffer转byte[]
Byte[]转Ibuffer
Ibuffer转IrandomAccessStream
DataWriterdatawriter=newDataWriter(inStream.GetOutputStreamAt(0));
datawriter.WriteBuffer(buffer,0,buffer.Length);
awaitdatawriter.StoreAsync();
IrandomAccessStream转Ibuffer
MemoryStreammemoryStream=newMemoryStream();
if(stream!=null)
{
byte[]bytes=ReadFully(stream);
if(bytes!=null)
{
varbinaryWriter=newBinaryWriter(memoryStream);
binaryWriter.Write(bytes);
}
}
IBufferbuffer=WindowsRuntimeBufferExtensions.GetWindowsRuntimeBuffer(memoryStream,0,(int)memoryStream.Length);
IRandomAccessStream转FileInputStream
IRandomAccessStream转FileOutputStream
Stream转byte[]
publicstaticbyte[]ConvertStreamTobyte(Streaminput)
{
byte[]buffer=newbyte[16*1024];
using(MemoryStreamms=newMemoryStream())
{
intread;
while((read=input.Read(buffer,0,buffer.Length))>0)
{
ms.Write(buffer,0,read);
}
returnms.ToArray();
}
}
Byte转Stream
{
Streamstream=newMemoryStream(bytes);
returnstream;
}
Stream转MemoryStream
{
MemoryStreammemoryStream=newMemoryStream();
if(stream!=null)
{
byte[]buffer=ReadFully(stream);
if(buffer!=null)
{
varbinaryWriter=newBinaryWriter(memoryStream);
binaryWriter.Write(buffer);
}
}
returnmemoryStream;
}
相关文章推荐
- Windows 8 学习笔记--各种流之间的转换
- Windows 8 学习笔记(八)--各种流之间的转换
- Windows 8 学习笔记(八)--各种流之间的转换
- JAVA学习笔记——Date与String之间的相互转换
- C#学习笔记1-类型之间的转换 分享修改删除
- Java学习-集合类-各种集合类之间的相互转换
- LINQ 学习笔记-字符串数组与整数数组之间的转换,排序
- [软件调试学习笔记]WinDbg演示IA-32 CPU下的Windows 分页机制下的地址转换过程
- 孙鑫VC学习笔记:第十一讲 (一) 坐标空间与各种转换的概念
- 孙鑫VC学习笔记:第十一讲 (一) 坐标空间与各种转换的概念
- openCv学习笔记(三)——openCv数据结构之间的转换
- 孙鑫VC学习笔记:第十一讲 (一) 坐标空间与各种转换的概念
- GOF设计模式学习笔记 --辨析各种模式的要点和相似模式之间的区别
- 【linux学习笔记】windows与linux换行符转换(unix2dos dos2unix) 字符编码转换(iconv)
- OSG学习笔记25——屏幕坐标——相机坐标——世界坐标之间的转换
- C#学习笔记之图片、字节数组、base64之间的转换
- 学习笔记—四元数与欧拉角之间的转换
- java入门学习笔记,不同进制之间的转换!
- openCv学习笔记(三)——openCv数据结构之间的转换
- 【OPEN GL】学习笔记之一:顶点坐标到屏幕坐标之间的转换