C# 文件转byte数组,byte数组再转换文件
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
//----引入必要的命名空间
using System.IO;
using System.Drawing.Imaging;
namespace FileStreamOperator
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
private byte[] photo;//公用缓冲区
        public string SourFilePath;//源图片文件路径
        public string ObjFilePath;//目标图片路径
private void btnOuput_Click(object sender, EventArgs e)
        {
            try
            {
                SourFilePath = txtInputPath.Text.Trim();
                string outputPath = txtOutputPath.Text.Trim();
                string outputFileName = txtOutputFileName.Text.Trim();
                ObjFilePath = outputPath +"\\"+ outputFileName;
                if (SourFilePath == "" || outputPath == "" || outputFileName == "")
                {
                    MessageBox.Show("输入路径和输出路径不能为空!");
                    return;
                }
                FileToStream();
                StreamToFile();
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }
private void btnSelectInput_Click(object sender, EventArgs e)
        {
            txtInputPath.Text=selectFile();
        }
        private string selectFile() {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                return openFileDialog1.FileName;
            }
            else {
                return "";
            }
}
        private string selectFolder()
        {
            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {
                return folderBrowserDialog1.SelectedPath;
            }
            else
            {
                return "";
            }
}
private void btnSelectOutput_Click(object sender, EventArgs e)
        {
            txtOutputPath.Text = selectFolder();
        }
private void btnClear_Click(object sender, EventArgs e)
        {
            txtInputPath.Text = "";
            txtOutputFileName.Text = "";
            txtOutputPath.Text = "";
        }
        public int StreamToFile()//反向转换
        {
            byte[] bytes = photo;
            FileStream fs = new FileStream(ObjFilePath, FileMode.Create, FileAccess.Write);
            fs.Write(bytes, 0, bytes.Length);
            fs.Flush();
            fs.Close();
            return 0;
        }
        public int imgToStream()//图片到流的转换
        {
            Image img = new Bitmap(SourFilePath);
            MemoryStream stream = new MemoryStream();
            img.Save(stream, ImageFormat.Bmp);
            BinaryReader br = new BinaryReader(stream);
            photo = stream.ToArray();
            stream.Close();
            return 0;
        }
        public int FileToStream()//文件到流的转换
        {
          photo = File.ReadAllBytes(SourFilePath);
return 0;
        }
        public Image ShowPic()//根据流显图
        {
            byte[] bytes = photo;
            MemoryStream ms = new MemoryStream(bytes);
            ms.Position = 0;
            Image img = Image.FromStream(ms);
            ms.Close();
            return img;
        }
    }
}
C# 文件转byte数组,byte数组再转换文件的更多相关文章
- 将文件内容转化为byte数组返回
		如何将文件内容转化为byte数组并返回呢?对于这个问题,我献上我第一次成功的代码~ package com.succez.task1; import java.io.ByteArrayOutputSt ... 
- 文件读写(三)利用FileStream类操作字节数组byte[]、BinaryFormatter、内存流MemoryStream
		一.Stream类概述 在.NET Framework中,文件和流是有区别的.文件是存储在磁盘上的数据集,它具有名称和相应的路径.当打开一个文件并对其进行读/写时,该文件就称为流(stream).但是 ... 
- java byte【】数组与文件读写(增加新功能)
		今天在测试直接写的文章: java byte[]数组与文件读写 时,想调用FileHelper类对字节数组以追加的方式写文件,结果无论怎样竟然数据录入不全,重新看了下文件的追加模式,提供了两种方式: ... 
- java byte【】数组与文件读写
		此文全文参考http://blog.csdn.net/sniffer_wang/article/details/7455701,自己加以改进应用,谢了 import java.io.ByteArray ... 
- c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换
		字节数组byte[]与图片image之间的转化 字节数组转换成图片 public static Image byte2img(byte[] buffer) { MemoryStream ms = ne ... 
- 代码实现:定义一个文件输入流,调用read(byte[] b)方法,将a.txt文件中的内容打印出来(byte数组大小限制为5)
		package com.loaderman.test; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; im ... 
- 接口请求,上传byte数组byte[]数据异常,负数变正数/负数变63
		一.背景 最近项目中有个需求,就是需要把一个byte[]数组上传到服务端.但是我发现发送的byte数组和服务端接收的数组不一样,所有的正数在传递时正确,数组长度也没变化,但是负数变成了63或者负数全部 ... 
- Byte和byte[]数组
		Byte和byte[]数组,“表示一个 8 位无符号整数, 一般为8位二进制数”. Byte是计算机最基础的存储单位和最基础的通讯单位. 而所有的类型都是支持由byte[]类型转换而来. 为什么说By ... 
- C# 字符串string和内存流MemoryStream及比特数组byte[]之间相互转换
		定义string变量为str,内存流变量为ms,比特数组为bt 1.字符串转比特数组 复制代码 代码如下: (1)byte[] bt=System.Text.Encoding.Default.GetB ... 
随机推荐
- 利用 urandom 生成随机密码
			cat /dev/urandom | LC_ALL=C tr -dc "[:alnum:]" | fold -w 16 |head -3 说明: fold -w 16 指定密 ... 
- dos 实用命令搜集
			dos 命令: 1.netstat -an 2.XP下打开凭证管理: control keymgr.dll 3.刷新DHCP协议,重新自动获取IP * ipconfig/release 命令来丢 ... 
- xgboost参数调优的几个地方
			tree ensemble里面最重要就是防止过拟合. min_child_weight是叶子节点中样本个数乘上二阶导数后的加和,用来控制分裂后叶子节点中的样本个数.样本个数过少,容易过拟合. su ... 
- Android学习笔记(23):列表项的容器—AdapterView的子类们
			AdapterView的子类的子类ListView.GridView.Spinner.Gallery.AdapterViewFlipper和StackView都是作为容器使用,Adapter负责提供各 ... 
- ADB高级应用
			ADB高级应用 一.利用无线来查看adb shell > adb tcpip 5555 连接: > adb connect IP:5555 见后文<调试注意事项> 二.模拟按键 ... 
- .Net中常用的几种ActionResult
			1.ViewResult 表示一个视图结果,它根据视图模板产生应答内容.对应得Controller方法为View. 2.PartialViewResult 表示一个部分视图结果,与ViewResult ... 
- 适合ASP.NET Web API使用的场景
			富客户端web应用程序:ASP.NET Web API适合大量使用AJAX调用的富客户端应用程序,如Silverlight应用程序,基于Adobe Flash的应用程序或单页应用程序(SPA)等. 本 ... 
- SASS常用方法
			cnpm install --save-dev sass-loader //sass-loader依赖于node-sass cnpm install --save-dev node-sass //实现 ... 
- Ubuntu 16.04下的LAMP环境配置
			在学习开发过程中,每当遇到新的问题时,通常都能在网上搜到解决的方法,但是网上的方法千千万,有些是已经过时了的,有些是跟自己开发环境不同的,总是不能第一时间能找到答案. 而当时遇到的问题可能在今后的开发 ... 
- halt---关闭正在运行的Linux操作系统。
			halt命令用来关闭正在运行的Linux操作系统.halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统. 语法 halt(选项) 选 ... 
