C# Stream 和 byte[] 之间的转换

一. 二进制转换成图片
MemoryStream ms = new MemoryStream(bytes);
ms.Position = 0;
Image img = Image.FromStream(ms);
ms.Close();
this.pictureBox1.Image

二. C#中byte[]与string的转换代码

1、System.Text.UnicodeEncoding converter = new
System.Text.UnicodeEncoding();
  byte[] inputBytes =converter.GetBytes(inputString);
  string inputString = converter.GetString(inputBytes);

2、string inputString =
System.Convert.ToBase64String(inputBytes);
  byte[] inputBytes =
System.Convert.FromBase64String(inputString);
FileStream fileStream = new FileStream(fileName, FileMode.Open,
FileAccess.Read, FileShare.Read);

三. C# Stream 和 byte[] 之间的转换

/// 将 Stream 转成 byte[]

public
byte[] StreamToBytes(Stream stream)
{
    byte[] bytes = new
byte[stream.Length];
    stream.Read(bytes, 0, bytes.Length);
    // 设置当前流的位置为流的开始
    stream.Seek(0, SeekOrigin.Begin);
    return bytes;
}

/// 将 byte[] 转成 Stream

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

四. Stream 和 文件之间的转换

将 Stream 写入文件

public
void StreamToFile(Stream stream,string fileName)
{
    // 把 Stream 转换成 byte[]
    byte[] bytes = new
byte[stream.Length];
    stream.Read(bytes, 0, bytes.Length);
    // 设置当前流的位置为流的开始
    stream.Seek(0, SeekOrigin.Begin);
    // 把 byte[] 写入文件
    FileStream fs = new
FileStream(fileName, FileMode.Create);
    BinaryWriter bw = new
BinaryWriter(fs);
    bw.Write(bytes);
    bw.Close();
    fs.Close();
}

五. 从文件读取 Stream

public
Stream FileToStream(string fileName)
{           
    // 打开文件
   
FileStream fileStream = new FileStream(fileName, FileMode.Open,
FileAccess.Read, FileShare.Read);
    // 读取文件的 byte[]
    byte[] bytes = new
byte[fileStream.Length];
    fileStream.Read(bytes, 0,
bytes.Length);
    fileStream.Close();
    // 把 byte[] 转换成 Stream
    Stream stream = new
MemoryStream(bytes);
    return stream;
}

最新文章

  1. python基础知识---正则
  2. 6、android 网络编程
  3. SQLServer 常用日期处理
  4. iOS二十种超酷时尚艺术滤镜汇总【附源码】
  5. opencv笔记3:trackbar简单使用
  6. ElasticSearch 查询语法
  7. Java异常处理面试题归纳
  8. 解决cookie 跨iframe
  9. 还原数据库“XXX”时失败。System.Data.SqlClient.SqlError: 无法执行 BACKUP LOG,因为当前没有数据库备份。
  10. Oracle总结第二篇【视图、索引、事务、用户权限、批量操作】
  11. Nginx服务器 配置 https
  12. IDC机房机器日志采集配置
  13. 30天自制操作系统 - 来一个hello world
  14. 基于matplotlib的数据可视化 - 三维曲面图gca
  15. linq查询语法和方法-簡單用法
  16. AES,SHA1,DES,RSA,MD5区别
  17. 从Mybatis的视角去看Bean的初始化流程
  18. 第十章 Secret & Configmap (上)
  19. Junit内部解密之四: Junit单元测试最佳实践
  20. Contiki进程间的交互

热门文章

  1. Deb版本Linux配置Selenium+Chrome+Java实现自动化测试
  2. Linux常用命令大全(很全面)
  3. Jenkins 搭建 .NET FrameWork 持续集成环境
  4. 谷歌浏览器控制台出现 Unchecked runtime.lastError: The message port closed before a response was received. 的报错
  5. 使用babel转码器,让浏览器支持es6语法
  6. JUC 一 ReentrantReadWriteLock
  7. JAVA jar命令(一)-jar打包class文件
  8. Android NDK 环境变量配置
  9. NX二次开发-UFUN创建图层类别UF_LAYER_create_category
  10. bash字符串前导美元符号的作用