数据流-------C#文件和byte[]互换问题
今天使用FileInfo.CopyTo的时候出现问题,当然并不是使用的问题,而是一些细节。
不过报错的时候,一度让我认为,copyto这个方法,给的参数必须是文件夹,而不是文件。所以就有了下面的查找
http://blog.csdn.net/foreverling/article/details/37659183
从上面直接拉过来的,暂时先就这么先放着了,之后再整理
如何将图片和声音转化成byte[],并通过webservice进行传输?
如何将webservice传输过来的byte[],转化成我们想要的文件?
(一)文件转化为byte[]
方法一:使用MemoryStream(MemoryStream的数据来自内存中缓冲区)
System.IO.MemoryStream m = new System.IO.MemoryStream();
System.Drawing.Bitmap bp = new System.Drawing.Bitmap(pname );
bp.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg);//将此图像以指定的格式保存到指定的流中。
byte[] b = m.GetBuffer();//从内存缓冲区中读取
方法二:使用FileStream(FileStream对象的数据来自文件)
FileStream stream = new FileInfo(path).OpenRead();
Byte[] buffer = new Byte[stream.Length];
//从流中读取字节块并将该数据写入给定缓冲区buffer中
stream.Read(buffer, 0, Convert.ToInt32(stream.Length));
(二)将byte[]转化成文件
WebReference.MyService obj = new WebReference.MyService();
Byte[] b = obj.downWav ("1001");//1001某条记录的pid,返回这条记录中的图片的byte[]
MemoryStream m = new MemoryStream(b);
string file =string.Format(@"{0}\e.wav",
Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase));
//将下载下来的文件放在当前目录下,保存为e.wav;当然如果是图片,可以保存为a.jpg
FileStream fs = new FileStream(file, FileMode.OpenOrCreate);
m.WriteTo(fs);
m.Close();
fs.Close();
m = null;
fs = null;
数据流-------C#文件和byte[]互换问题的更多相关文章
- C#中文件和byte[]互换问题
如何将图片和声音转化成byte[],并通过webservice进行传输? 如何将webservice传输过来的byte[],转化成我们想要的文件? (一)文件转化为byte[] 方法 ...
- C#读取文件为byte[]
C#读取文件为byte[] 转载请注明出处 http://www.cnblogs.com/Huerye/ /// <summary> /// 读取程序生成byte /// </sum ...
- Java 文件和byte数组转换
/** * 获得指定文件的byte数组 */ private byte[] getBytes(String filePath){ byte[] buffer = null; try { File fi ...
- JAVA中文件与Byte数组相互转换的方法
JAVA中文件与Byte数组相互转换的方法,如下: public class FileUtil { //将文件转换成Byte数组 public static byte[] getBytesByFile ...
- C#:文件、byte[]、Stream相互转换
一.byte[] 和 Stream /// <summary> /// byte[]转换成Stream /// </summary> /// <param name=&q ...
- HDFS数据流-剖析文件读取及写入
HDFS数据流-剖析文件读取及写入 文件读取 1. 客户端通过调用FileSystem对象的open方法来打开希望读取的文件,对于HDFS来说,这个对象是分布式文件系统的一个实例.2. Distrib ...
- C# 文件、byte相互转换
文件转byte数组: /// <summary> /// 将文件转换为byte数组 /// </summary> /// <param name="path&q ...
- java 文件和byte 互转
/** * 获得指定文件的byte数组 */ private byte[] getBytes(String filePath){ byte[] buffer = null; try { File fi ...
- 将图片文件以byte的形式从导数据库中
byte[] FileByteArray = new byte[FileLength]; //图象文件临时储存Byte数组 //Stream StreamObject ...
随机推荐
- linq join 左连接 leftjoin 多个on条件 where 条件
var haveChange = from newScore in newScoreList join oldScore in oldScoreList on new{newScore.ExamId, ...
- java 对象数组
java 对象数组 from zhaocundang@163.com 先 用类声明数组: 再把类的实例赋给数组: package works; import java.util.Scanner; pu ...
- geoserver 添加图层数据
1.添加shapefile文件 首先到http://www2.census.gov/geo/tiger/TIGER2011/CONCITY/上下载名称为tl_2011_47_concity的shape ...
- jQuery easyUI的datagrid,如何在翻页以后仍能记录被选中的行
1.先给出问题解决后的代码 <%@ page language="java" import="java.util.*" pageEncoding=&quo ...
- 如何通过Node.js启动cesium
设置一个Web服务器通过Node.js是很容易的,只需要3个步骤: (1)从安装Node.js网站,你可以使用默认安装设置. (2)打开命令行,然后进入Cesium的根目录,通过npm install ...
- go jwt OAuth2.0
https://blog.csdn.net/wangshubo1989/article/details/77980316 https://blog.csdn.net/wangshubo1989/art ...
- MyBatis 支持的扩展点(version:3.2.7)
从 [MyBatis 原码解析(version:3.2.7)] 中,我们得知,MyBatis去执行SQL都是通过 DefaultSqlSession 中的工具方法去执行的. 那么问题来了,MyBati ...
- AngularJS------使用VSCode创建的Angular项目部署IIS
转载: http://www.cnblogs.com/kingkangstudy/p/7699710.html 1.进入项目src,执行命令行:ng build 2.步骤1后会生成dist文件 3.打 ...
- SpringMVC由浅入深day01_7入门程序小结
7 入门程序小结 通过入门程序理解springmvc前端控制器.处理器映射器.处理器适配器.视图解析器用法. 前端控制器配置: 处理器映射器: 非注解处理器映射器(了解) 注解的处理器映射器(掌握) ...
- Hibernate_day04讲义_使用Hibernate完成对客户查询的优化