c#读写内存流

MemoryStream封装以无符号字节数组形式存储的数据,该数组在创建MemoryStream对象时被初始化,或者该数组可创建为空数组。可在内存中直接访问这些封装的数据。内存流可降低应用程序中对临时缓冲区和临时文件的需要。

实例
首先需要添加pictureBox、Button控件

代码

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

//注:本代码注释都处在相应语句下方

namespace WindowsFormsApp15
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog op = new OpenFileDialog();
            //实例化一个打开文件对话框
            op.Filter = "JPG图片|*.jpg|GIF图片|*.gif";
            //设置文件类型
            if(op.ShowDialog()==DialogResult.OK)
            {
                //如果打开文件对话框打开了
                FileStream f = new FileStream(op.FileName, FileMode.Open);
                //实例化一个文件流
                byte[] data = new byte[f.Length];
                //创建存储数组
                f.Read(data, 0, data.Length);
                //把文件读到字节数组
                f.Close();

                MemoryStream ms = new MemoryStream(data);
                //实例化一个内存流并把从文件流中读取的字节数组放到内存流中去
                this.pictureBox1.Image = Image.FromStream(ms);
                //设置图片框pictureBox中的图片为读取到的数据
            }
        }
    }
}

运行结果


c#读写内存流_第1张图片
AfterRun.PNG

总结:内存流文件在写入时,通过FileStream类实例化一个文件流对象,再将文件流对象内容读取到一个byte类型字节组中,最后把此byte类型字节组放入到MemoryStream类实例化内存流对象中,通过这种方式的转换最后将写入的文件在pictureBox控件中读取出来。

你可能感兴趣的:(c#读写内存流)