zoukankan      html  css  js  c++  java
  • C#:文件、byte[]、Stream相互转换

    一、byte[] 和 Stream

            /// <summary>
            /// byte[]转换成Stream
            /// </summary>
            /// <param name="bytes"></param>
            /// <returns></returns>
            public Stream BytesToStream(byte[] bytes)
            {
                Stream stream = new MemoryStream(bytes);
                return stream;
            }
    
            /// <summary>
            /// Stream转换成byte[]
            /// </summary>
            /// <param name="stream"></param>
            /// <returns></returns>
            public byte[] StreamToBytes(Stream stream)
            {
                byte[] bytes = new byte[stream.Length];
                stream.Read(bytes, 0, bytes.Length);
                stream.Seek(0, SeekOrigin.Begin); // 设置当前流的位置为流的开始
                return bytes;
            }
    

    二、文件 和 Stream

            /// <summary>
            /// 从文件读取Stream
            /// </summary>
            /// <param name="path"></param>
            /// <returns></returns>
            public Stream FileToStream(string path)
            {
                FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read); // 打开文件
                byte[] bytes = new byte[fileStream.Length]; // 读取文件的byte[]
                fileStream.Read(bytes, 0, bytes.Length);
                fileStream.Close();
                Stream stream = new MemoryStream(bytes); // 把byte[]转换成Stream
                return stream;
            }
    
            /// <summary>
            /// 将Stream写入文件
            /// </summary>
            /// <param name="stream"></param>
            /// <param name="path"></param>
            public void StreamToFile(Stream stream, string path)
            {
                byte[] bytes = new byte[stream.Length]; // 把Stream转换成byte[]
                stream.Read(bytes, 0, bytes.Length);
                stream.Seek(0, SeekOrigin.Begin); // 设置当前流的位置为流的开始
                FileStream fs = new FileStream(path, FileMode.Create); // 把byte[]写入文件
                BinaryWriter bw = new BinaryWriter(fs);
                bw.Write(bytes);
                bw.Close();
                fs.Close();
            }
    

    转自:http://www.cnblogs.com/warioland/archive/2012/03/06/2381355.html

  • 相关阅读:
    6.BLE---数据传输
    5.BLE---报文
    4.BLE---广播信道防冲突与数据信道选择
    3.BLE---信道与功率
    Ubuntu 安装exe 软件
    Zephyr ubuntu 环境搭建
    ES6语法(一)let 和 const 命令
    Vue(二十三)vuex + axios + 缓存 运用 (以登陆功能为例)
    Vue(二十二)vuex小案例(官网计数案例整合)
    Vue(二十一)使用express模拟接口数据
  • 原文地址:https://www.cnblogs.com/Cchblogs/p/6946709.html
Copyright © 2011-2022 走看看