zoukankan      html  css  js  c++  java
  • Windows 8 学习笔记(八)各种流之间的转换

    今天在Stream与IrandomAccessStream之间转换时,感觉很纠结,所以干脆先把想到的一些场景都罗列了一下,希望下次再用的时候就不用这么毛手毛脚的了。。。

    Stream IRandomAccessStream

    方法一:
    byte[] bytes = StreamToBytes(stream);
    InMemoryRandomAccessStream memoryStream = new InMemoryRandomAccessStream();
    DataWriter datawriter = new DataWriter(memoryStream.GetOutputStreamAt(0));
    datawriter.WriteBytes(bytes);
    await datawriter.StoreAsync();
    方法二:
    var randomAccessStream = new InMemoryRandomAccessStream();
    var outputStream = randomAccessStream.GetOutputStreamAt(0);
    await RandomAccessStream.CopyAsync(stream.AsInputStream(), outputStream);
      

    IRandomAccessStream Stream

    Stream stream=WindowsRuntimeStreamExtensions.AsStreamForRead(randomStream.GetInputStreamAt(0));
     

    IbufferStream

    Stream stream = WindowsRuntimeBufferExtensions.AsStream(buffer);
      

    StreamIbuffer

    MemoryStream memoryStream = new MemoryStream();           
     if (stream != null)
     {
          byte[] bytes = ReadFully(stream);
          if (bytes != null)
          {
               var binaryWriter = new BinaryWriter(memoryStream);
               binaryWriter.Write(bytes);
           }
      }
     IBuffer buffer=WindowsRuntimeBufferExtensions.GetWindowsRuntimeBuffer(memoryStream,0,(int)memoryStream.Length);
     

    Ibufferbyte[]

    byte[] bytes=WindowsRuntimeBufferExtensions.ToArray(buffer,0,(int)buffer.Length);

    Byte[]Ibuffer

    WindowsRuntimeBufferExtensions.AsBuffer(bytes,0,bytes.Length);

    IbufferIrandomAccessStream

    InMemoryRandomAccessStream inStream = new InMemoryRandomAccessStream();
    DataWriter datawriter = new DataWriter(inStream.GetOutputStreamAt(0));
    datawriter.WriteBuffer(buffer,0,buffer.Length);
    await datawriter.StoreAsync();

    IrandomAccessStreamIbuffer

    Stream stream=WindowsRuntimeStreamExtensions.AsStreamForRead(randomStream.GetInputStreamAt(0));
    MemoryStream memoryStream = new MemoryStream();           
    if (stream != null)
    {
        byte[] bytes = ReadFully(stream);
        if (bytes != null)
        {
            var binaryWriter = new BinaryWriter(memoryStream);
            binaryWriter.Write(bytes);
        }
    }
    IBuffer buffer=WindowsRuntimeBufferExtensions.GetWindowsRuntimeBuffer(memoryStream,0,(int)memoryStream.Length);

    IRandomAccessStreamFileInputStream

    FileInputStream inputStream=randomStream.GetInputStreamAt(0) as FileInputStream;

    IRandomAccessStreamFileOutputStream

    FileOutputStream outStream= randomStream.GetOutputStreamAt(0) as FileOutputStream;

    Streambyte[]

    public static byte[] ConvertStreamTobyte(Stream input)

    {

    byte[] buffer = new byte[16 * 1024];

    using (MemoryStream ms = new MemoryStream())

    {

    int read;

    while ((read = input.Read(buffer, 0, buffer.Length)) > 0)

    {

    ms.Write(buffer, 0, read);

    }

    return ms.ToArray();

    }

    }

     

    ByteStream

    public Stream BytesToStream(byte[] bytes)
            {
                Stream stream = new MemoryStream(bytes);
                return stream;
            }

    StreamMemoryStream

    public static MemoryStream ConvertStreamToMemoryStream(Stream stream)
            {
                MemoryStream memoryStream = new MemoryStream();
                if (stream != null)
                {
                    byte[] buffer = ReadFully(stream);
                    if (buffer != null)
                    {
                        var binaryWriter = new BinaryWriter(memoryStream);
                        binaryWriter.Write(buffer);
                    }
                }
                return memoryStream;
            }
    应该还有些其它的场景,目前就想到这些,绕晕了都,恩恩…

    Trackback:

    http://www.cnblogs.com/jing870812/archive/2012/04/12/2444870.html

  • 相关阅读:
    SQLServer中的死锁的介绍
    T-SQL基础--TOP
    jQuery 与js判断是否单选复选选中
    动态替换iframe的src及动态改变iframe的高度
    ztree-持续更新中
    java发送http连接
    nginx配置文件详解
    eclipse Mars4.5.2安装fatjar
    java Scanner类注意事项
    纯java+maven+sqlserver使用mybatis
  • 原文地址:https://www.cnblogs.com/hdjjun/p/2574954.html
Copyright © 2011-2022 走看看