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

  • 相关阅读:
    HTTP Error 500.19
    为了找到自己的路——leo锦书62
    hdu3068 最长回文串
    AE+SceneControl源代码共享
    从节能的数据中心的硬件和软件设计的角度(一)
    设计模式------工厂方法模式
    PSU 离11.2.0.3.0 -&gt; 11.2.0.3.11 如果解决冲突的整个
    Android四个多线程分析:MessageQueue实现
    shiro权限架作战
    Codeforces 549G. Happy Line 馋
  • 原文地址:https://www.cnblogs.com/Cchblogs/p/6946709.html
Copyright © 2011-2022 走看看