MemoryStream和FileStream】的更多相关文章

一,FileStream对象的数据来自文件,而MemoryStream对象的数据来自内存缓冲区.这两个类都继承自Stream类. 二,抽象基类System.IO.Stream代表流,它提供Read和Write两个方法. using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; u…
存在各种各样的IO设备,比如说文件File类(字符串文件和二进制文件),可以直接使用File类对文件进行读写操作. 这些各种IO的读取和写入是通过流的形式实现的,基类为Stream,针对各种不同的IO设备,就有FileStream,MemoryStream. FileStream可以实现任意格式,任意大小文件的读取,但是它的方法只能读取字节,不能直接读取读字符串或读一行等等,操作偏底层. 各种流的专用读写类Reader和Writer,主要用于方便读写文本和字符串,这些类中不仅可以用来读取字节,也…
一.简单介绍一下MemoryStream MemoryStream是内存流,为系统内存提供读写操作,由于MemoryStream是通过无符号字节数组组成的,可以说MemoryStream的性能可以算比较出色,所以它担当起了一些其他流进行数据交互安时的中间工作,同时可降低应用程序中对临时缓冲区和临时文件的需求,其实MemoryStream的重要性不亚于FileStream,在很多场合,我们必须使用它来提高性能 二.MemoryStream和FileStream的区别 前文中也提到了,FileStr…
MemoryStream 目录: 1 简单介绍一下MemoryStream 2 MemoryStream和FileStream的区别 3 通过部分源码深入了解下MemoryStream 4 分析MemorySteam最常见的OutOfMemory异常 5 MemoryStream 的构造 6 MemoryStream 的属性 7 MemoryStream 的方法 8 MemoryStream 简单示例 :  XmlWriter中使用MemoryStream 9 MemoryStream 简单示例…
用于记录C#知识要点. 参考:CLR via C#.C#并发编程.MSDN.百度 记录方式:读每本书,先看一遍,然后第二遍的时候,写笔记. CLR:公共语言运行时(Common Language Runtime)是一个可由多种编程语言(VB.F#等)使用的公共语言运行库. 托管模块:编译源码会生成托管模块,他是标准的PE文件.包含:PE32头.CLR头.IL中间语言. 元数据:CLR除了生成IL外,还会生成元数据.元数据总与包含IL代码的文件相关联. 程序集:是一个或多个模块/资源的逻辑性分组.…
Thanks to http://stackoverflow.com/a/12350106/222748 I got: using (var memoryStream = new MemoryStream()) { using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true)) { var demoFile = archive.CreateEntry("foo.txt"); using (v…
关于NPOI NPOI是POI项目的.NET版本,是由@Tony Qu(http://tonyqus.cnblogs.com/)等大侠基于POI开发的,可以从http://npoi.codeplex.com/下载到它的最新版本.它不使用Office COM组件(Microsoft.Office.Interop.XXX.dll),不需要安装Microsoft Office,支持对Office 97-2003的文件格式,功能比较强大.更详细的说明请看官方网站. 它的以下一些特性让我相当喜欢: 支持对…
excel 2003: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Diagnostics; using System.Globalization;…
public static void GenerateExcelFromStream() { using (MemoryStream memoryStream = new MemoryStream()) { using (SpreadsheetDocument document = SpreadsheetDocument.Create(memoryStream, SpreadsheetDocumentType.Workbook)) { document.AddWorkbookPart(); do…
C# IO流的操作非常重要,我们读写文件都会使用到这个技术,这里先演示一个文件内容复制的例子,简要说明C#中的IO操作. namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //将文件内容读到流中 Stream stream = File.Open("test.txt", FileMode.OpenOrCreate); //初始化一个字节数组 byte[] bytes = n…
 C# Code  12345678910111213141516171819202122232425262728293031           private void button1_Click(object sender, EventArgs e)         {             var fileDir = this.txtFileFolder.Text.Trim();                 byte[] allBytes = null;              …
改自HeDaode 2007-12-28的代码 将之改为从硬盘读取后文件后,将MemoryStream放到内存中,提高后续查询速度 ///<summary> /// 提供从纯真IP数据库搜索IP信息的方法: ///</summary> public class IPSearch { FileStream fileStream = null; static long[] ipArray = null; ; long ip; static MemoryStream ipFile =nu…
需求:WCF搭建服务端提供导出并下载Excel文件接口,客户端使用ajax发起请求,浏览器直接下载Excel文件. 难点:WCF中并没有HttpContext对象,因此,服务端总是获取不到HttpContext.Current值.即HttpContext.Current=null. 使用WebFrom的方法已经不能实现需求了. HttpContext.Current.Response.ContentType = "application/ms-excel";HttpContext.Cu…
mailkit库用于收发邮件.这个库可以替代C#自带的发邮件库 环境  W10 / VS2017CMMT / MailKit version="2.0.3" "net46"  / MimeKit version="2.0.3" "net46" mailkit使用nuget下载或者到GIT  https://github.com/jstedfast/MailKit 邮件收发是与邮件服务器交互,原理参考 https://www.c…
当记录数超出65536时,有两种方式处理: 一是调用WriteToDownLoad65536方法建立多个Excel. 二是调用WriteToDownLoad方法在同一个Excel中建多个Sheet. 若在同一Excel中建多个Sheet,若记录数达数十万,会导致字节流溢出的问题,解决办法是先获取MemoryStream,然后分块读取写入文件流. 需要注意的是在读取内存流的时候,一定要将内存流的位置设为0,因为在从HssfWorkBook中获取内存流时,位置已经置于最后了!若不重Position重…
一.Excel导入及导出问题产生:   从接触.net到现在一直在维护一个DataTable导出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题:   导出问题:   如果是asp.net,你得在服务器端装Office,几百M呢,还得及时更新它,以防漏洞,还得设定权限允许ASP.net访问COM+,听说如果导出过程中出问题可能导致服务器宕机.   Excel会把只包含数字的列进行类型转换,本来是文本型的,它非要把你转成数值型的,像身份证后三位变成000,编号000123会变…
0x00 前言 最近几天国外安全研究员Soroush Dalili (@irsdl)公布了.NET Remoting应用程序可能存在反序列化安全风险,当服务端使用HTTP信道中的SoapServerFormatterSinkProvider类作为信道接收器并且将自动反序列化TypeFilterLevel属性设置为Full的时候会造成反序列化漏洞,从而实现远程RCE攻击,本文笔者从原理和代码审计的视角做了相关介绍和复现,并且归纳成.NET反序列化漏洞系列课程中的第五课 0x01 .NET Remo…
C# IO流的操作非常重要,我们读写文件都会使用到这个技术,这里先演示一个文件内容复制的例子,简要说明C#中的IO操作. namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //将文件内容读到流中 Stream stream = File.Open("test.txt", FileMode.OpenOrCreate); //初始化一个字节数组 byte[] bytes = n…
一.Excel导入及导出问题产生:   从接触.net到现在一直在维护一个DataTable导出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题:   导出问题:   如果是asp.net,你得在服务器端装Office,几百M呢,还得及时更新它,以防漏洞,还得设定权限允许ASP.net访问COM+,听说如果导出过程中出问题可能导致服务器宕机.   Excel会把只包含数字的列进行类型转换,本来是文本型的,它非要把你转成数值型的,像身份证后三位变成000,编号000123会变…
整个思路是这样的: 1.查询数据库中的文件流放到datatable中2.循环datatable将文件流一个个生成文件,放到对应的文件夹中,3.下载某个文件夹下的所有文件a.循环这个文件夹下的所有文件,调用zip()方法压缩到zipSteam中b.将zipStream流保存为一个.zip文件4.返回给前端压缩成功5.前端用window.open(“压缩文件.zip”)下载压缩文件 这个程序是几年前写的,比较绕,不是个最佳方法,应该有更好的. 优化思路: 1.将数据库中查询出来的文件流直接调用zip…
using System; using System.Diagnostics; using System.Globalization; using System.Net; using System.IO; using System.IO.Compression; using System.Threading; using System.Xml; using Utility; using WorldWind; namespace WorldWind.Net { public delegate vo…
在上一篇中,我们说了模拟登录, 下面我们说说附件上传. 据说,最早的http协议是不支持附件上传的,后来有添加了一个RFC 2045 协议,才支持附件上传,关于附件上传,请参见 http://www.cnblogs.com/greenerycn/archive/2010/05/15/csharp_http_post.html 好了,其实用C#模拟上传附件,主要的难点就在于如何构建此协议的格式以及编码. 作为备忘,我这里只放一段成品代码了. 参数:URL,上传控件的id,附件的本地全路径,传输的K…
NPOI调用方法 DataTable dt = new DataTable(); Dictionary<string, string> header = new Dictionary<string, string>(); header.Add("UserName", "姓名"); header.Add("SignCity", "地区"); header.Add("UserPhone"…
一.Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题:导出问题: 如果是asp.net,你得在服务器端装Office,几百M呢,还得及时更新它,以防漏洞,还得设定权限允许ASP.net访问COM+,听说如果导出过程中出问题可能导致服务器宕机. Excel会把只包含数字的列进行类型转换,本来是文本型的,它非要把你转成数值型的,像身份证后三位变成000,编号000123会变成123,够智能吧…
I am having a problem similar to the ones described in #374 and #1196. I have a service which returns a pdf file as attachment with Content-Disposition header. This works when I call the endpoint from the browser - file is downloaded. On Swagger UI I…
MemoryStream 目录: 1 简单介绍一下MemoryStream 2 MemoryStream和FileStream的区别 3 通过部分源码深入了解下MemoryStream 4 分析MemorySteam最常见的OutOfMemory异常 5 MemoryStream 的构造 6 MemoryStream 的属性 7 MemoryStream 的方法 8 MemoryStream 简单示例 :  XmlWriter中使用MemoryStream 9 MemoryStream 简单示例…
本文利用第三方开源库NPOI实现Excel97-2003,Excel2007+的数据导入导出操作. 不依赖Office是否安装.NPOI开源项目地址:http://npoi.codeplex.com/. 库文件下载:http://npoi.codeplex.com/releases/view/115353 using System; using System.Collections; using System.Collections.Generic; using System.Data; usi…
/// <summary> /// 一人一附件发送邮件 /// 2017-05-17 涂聚文 GeovinDu /// </summary> /// <param name="To">接收邮件人</param> /// <param name="Subject">邮件标题</param> /// <param name="Msg">邮件内容</param&g…
读取UTF-8格式的文件内容 function LoadUTF8File(AFileName: string): string; var ffileStream:TFileStream; fAnsiBytes: string; S: string; begin ffileStream:=TFileStream.Create(AFileName,fmOpenRead); SetLength(S,ffileStream.Size); ffileStream.Read(S[],Length(S));…
#线程详解 1. Thread基础之从 WinDbg 角度理解你必须知道的时间和空间上的开销 一:空间上的开销 1.thread本身来说就是操作系统的概念... <1> thread的内核数据结构,其中有osid,context => CPU寄存器的里面的一些变量. 30 ms <2>. thread 环境块 : tls[thread本地存储], execptionList 的信息.... WinDbg 来给大家演示... 32,64 =可以达到clr的层面给大家展示底层知识…