ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C# Stream的使用

2022-06-07 11:35:09  阅读:192  来源: 互联网

标签:文件 return Stream C# 读写 FileStream file 使用


流(Stream)是.NET Framework为程序提供的读写数据的方法。每个流都是抽象类Stream的子类,已经内置类很多流类用来完成不同的工作

1,Stream–>FileStream读写文件, FileStream 类只能处理原始字节(raw byte)。FileStream 类可以用于任何数据文件,而不仅仅是文本文件。FileStream 对象可以用于读取诸如图像和声音的文件,FileStream读取出来的是字节数组,然后通过编码转换将字节数组转换成字符串。

引用命名空间

using System.IO;

声明一个FileStream类的对象

FileStream fsRead = new FileStream(string path, FileMode mode, FileAccess access);

参数解析:
path:要操作的文件路径,路径可以是绝对路径或者相对路径。

//Directory.GetCurrentDirectory()保存到解决方案下的默认地址  file.FileName给的文件名
var filefullPath = Path.Combine(Directory.GetCurrentDirectory(), file.FileName);

mode:操作文件的方式,打开或者创建

access:操作文件中的数据,读取或者写入

实操

例子一 保存文件到本地


        /// <summary>
        /// postman上传文件到本地
        /// </summary>
        /// <param name="filename">保存文件名称</param>
        /// <param name="file">文件</param>
        /// <returns></returns>
        [HttpPost]
        public async Task<string> SaveFile([FromForm] string filename, IFormFile file)
        {
            return await Task.Run(() =>
            {
                try
                {
                    //保存文件到本地
                    var filefullPath = Path.Combine(Directory.GetCurrentDirectory(), filename);
                    using (FileStream fs = new FileStream(filefullPath, FileMode.Create,FileAccess.ReadWrite))
                    {
                        file.CopyTo(fs);
                        fs.Flush();
                    }
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
                return "保存成功";
            });
        }

2, Stream–>MemoryStream读写内存块数据

Stream–>NetworkStream读写其他计算机或设备数据
Stream–>GZipStream压缩数据便于下载和存储

标签:文件,return,Stream,C#,读写,FileStream,file,使用
来源: https://www.cnblogs.com/yunnn/p/16351176.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有