一文学会C# .Net 把文件 在文件流与二进制之间互相转译

941 阅读1分钟

一: 文件转译成二进制

步骤简介:通过FileStream文件流、与BinaryReader二进制流,把文件转成二进制

示例: 如下图

image.png

 //图片转二进制按钮点击事件
 private void button1_Click(object sender, EventArgs e)
    {
        //实例化图片文件流
        using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
        {
            //读取图片文件流中的二进制数据
            using (BinaryReader br = new BinaryReader(fs))
            {
                //文件流的长度
                int length = Convert.ToInt32(fs.Length);
                //把二进制数据读取成文件流对应长度大小的byte字节
                byte[] imgBytes = br.ReadBytes(length);

                MessageBox.Show("保存成功");
            }
        }
    }

二: 二进制流转文件

步骤简介: 把二进制数据放到MemoryStream流中,转译文件

示例:如下图 image.png

    /// <summary>
    /// 把二进制转成文件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void button2_Click(object sender, EventArgs e)
    {
        //把二进制存放于缓冲区中
        MemoryStream ms = new MemoryStream(imgBytes);
        pictureBox2.Image = Image.FromStream(ms);

        MessageBox.Show("转译成功");
    }

全部代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace YDTFileTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    
            static string path = "E:\\浏览器下载的东西\\.NetCoreEdit.jpg";
            static byte[] imgBytes = null;
            private void Form1_Load(object sender, EventArgs e)
            {
                using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
                {
                    pictureBox1.Image = Image.FromStream(fs);
                }
            }
            private void button1_Click(object sender, EventArgs e)
            {
                //实例化图片文件流
                using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
                {
                    //读取图片文件流中的二进制数据
                    using (BinaryReader br = new BinaryReader(fs))
                    {
                        //文件流的长度
                        int length = Convert.ToInt32(fs.Length);
                        //把二进制数据读取成文件流对应长度大小的byte字节
                        imgBytes = br.ReadBytes(length);
    
                        MessageBox.Show("保存成功");
                    }
                }
            }
    
            /// <summary>
            /// 把二进制转成文件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button2_Click(object sender, EventArgs e)
            {
                //把二进制存放于缓冲区中
                MemoryStream ms = new MemoryStream(imgBytes);
                pictureBox2.Image = Image.FromStream(ms);
    
                MessageBox.Show("转译成功");
            }
        }
}

我是以图片为例,其他文件也是如此操作.

以上就是我了解的的文件与二进制互相转换的简单相关知识,大家有更加好用的知识,欢迎到评论区讨论!!