文件与二进制流互转

转载 2013年12月04日 14:16:19
 

一. 二进制转换成图片
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;
}

文件流和二进制流

C语言读写文件有两种方式ASCII 和 二进制。现在举例说明: 内存中的字符或字符串都是文本模式(unicode编码存储,统一长度,定长码,方便) 内存中的其他变量都是以二进制编码存储 程序的代...
  • suifengpiao_2011
  • suifengpiao_2011
  • 2014年11月13日 23:31
  • 2051

文本流与二进制流的区别

最近在复习c语言的文件处理函数,更大的层面来说这都是IO问题,所以复习一下IO相关的知识。 而文本流与二进制流的概念我看了这篇文章,觉得讲地很好,它的说法和《C和指针》里面的是一样的。 先说下两个...
  • u010087886
  • u010087886
  • 2015年08月26日 15:17
  • 728

关于c#文件流与二进制的读入写出(二)

一、使用StreamWriter类写入文件      应用FileStream类需要许多额外d
  • ytqxiaoma
  • ytqxiaoma
  • 2014年11月04日 17:47
  • 520

c++ 读写二进制文件流

掌握文本文件读写的方法 了解二进制文件的读写方法   C++文件流: fstream  // 文件流 ifstream  // 输入文件流 ofstrea...
  • ljq550000
  • ljq550000
  • 2015年03月08日 18:41
  • 2337

php上传二进制数据流

  • yfgcq
  • yfgcq
  • 2016年08月16日 10:28
  • 3041

利用Ajax上传二进制文件

网页文件
  • butterfly5211314
  • butterfly5211314
  • 2016年03月13日 10:33
  • 2041

java流与文件——读写二进制数据(DataOutput + DataInput)

【0】README0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——读写二进制数据(DataOutput + DataInput)的相关知识; 0.2...
  • PacosonSWJTU
  • PacosonSWJTU
  • 2016年01月13日 21:49
  • 6974

使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法。

最近在做我们单位的内部一个系统,使用了类似于Asp.Net 2.0里面的Theme(主题)的功能。此功能的核心是一个动态的CSS定义,根据用户选择的不同主题内容来发送不同的CSS样式文本。 本来...
  • csunking
  • csunking
  • 2015年05月08日 17:33
  • 580

关于使用二进制流上传的问题,求大神解答

本项目使用ssh开发,上传功能的时候上传的附件如果超过2个,则action直接返回input.里面的上传方法也不走,附件是2个或者2个一下的时候则没问题。本人不知道是什么原因。求解答。 我的代码: ...
  • hengqiongzi4169
  • hengqiongzi4169
  • 2017年01月08日 18:11
  • 264

iOS 二进制流转化

自己在做一个项目时,需要使用socket通信,要和java中bytebuffer转换的属性一样,需要将所有的类型如:int,short,long,string类型转成和java或者c++通信都使用的二...
  • larryluoshuai
  • larryluoshuai
  • 2017年03月02日 17:18
  • 648
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件与二进制流互转
举报原因:
原因补充:

(最多只允许输入30个字)