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;
}

Byte[]和Stream相互转换的更多相关文章

  1. C#:文件、byte[]、Stream相互转换

    一.byte[] 和 Stream /// <summary> /// byte[]转换成Stream /// </summary> /// <param name=&q ...

  2. byte[] Base64 Stream 之间相互转换

    图片 base64转byte[] /// <summary> /// 保存base64图片,返回阿里云地址 /// </summary> /// <param name= ...

  3. golang []byte 和 string相互转换

    原文链接:golang []byte和string相互转换 测试例子 package main import ( "fmt" ) func main() { str2 := &qu ...

  4. 16进制字符串和byte数组进行相互转换\将10进制转换为任意进制

    16进制字符串和byte数组进行相互转换 简介 1个byte对应8个bit,16进制使用4个bit,所以一个byte转成16进制,占用两位. JAVA代码 private static final c ...

  5. InputStream只能读取一次的解决办法 C# byte[] 和Stream转换

    x 情景--->>> 导入文件的时候,前台传过来一个文件, 后台接到: HttpPostedFileBase file = Request.Files[];由于对这个文件后台处理比较 ...

  6. C#中字节数组(byte[])和字符串相互转换

    转换过程主要使用到System.Text.Encoding命名空间下的类 1. 字符串转换成字节数组byte[]: string str = "This is test string&quo ...

  7. C#-----字节数组(byte[])和字符串相互转换

       Encoding类  表示字符编码 1.字符串转换成字节数组byte[] using System; using System.Collections.Generic; using System ...

  8. golang []byte和string相互转换

    测试例子 package main   import (     "fmt" )   func main() {     str2 := "hello"     ...

  9. 数组Byte [] 和 string 相互转换

    using System; using System.Collections.Generic; using System.Text; namespace NET.MST.Fourth.StringBy ...

随机推荐

  1. 2019-9-2-win10-uwp-布局

    title author date CreateTime categories win10 uwp 布局 lindexi 2019-09-02 12:57:38 +0800 2018-2-13 17: ...

  2. 笔记38 Spring Web Flow——订单流程(定义基本流程)

    做一个在线的披萨订购应用 实际上,订购披萨的过程可以很好地定义在一个流程中.我们首先从 构建一个高层次的流程开始,它定义了订购披萨的整体过程.接下 来,我们会将这个流程拆分成子流程,这些子流程在较低的 ...

  3. [转]sourceforge文件下载过慢

    sourceforge文件下载过慢,可以用下面网址镜像下载, 通过 下载Sourceforge等国内无法下载站点文件的另一种方法博文,好像主站点是 https://www.mirrorservice. ...

  4. SOLID设计原则

    SOLID设计原则 Single Responsibility Principle单一职责原则 单一职责原则(SRP)表明一个类有且只有一个职责. 一个类就像容器一样,它能添加任意数量的属性.方法等. ...

  5. js特效玫瑰花

    <script> var b = document.body; var c = document.getElementsByTagName('canvas')[0]; var a = c. ...

  6. Go Hello World 实例

    ## Go Hello World 实例 package main import "fmt" func main() { /* This is my first sample pr ...

  7. NX二次开发-获取尺寸的附加文本UF_DRF_ask_appended_text

    #include <uf.h> #include <uf_drf.h> #include <uf_obj.h> #include <uf_part.h> ...

  8. JTable更新内容的方法

    JTable更新内容的方法 DefaultTableModel dtm=new DefaultTableModel(data,head);//定义表格模型 jt.setModel(dtm);或jt=n ...

  9. ggplot2在一幅图上画两条曲线

    ggplot2在一幅图上画两条曲线 print(data)后的结果是 C BROWN.P MI.P 0 0.9216 0.9282 30 0.9240 0.9282 100 0.9255 0.9282 ...

  10. 基于Netty的RPC架构学习笔记(八):protocol buff学习使用

    文章目录 简介 准备 protobuf配置文件 生成java代码 举个