上节课老师主要讲了stream及其一些运用和实例,下面我们就来讨论讨论Stream。

我们知道,C#中常用的stream有文件流(FileSteam),内存流(MemoryStream),压缩流(GZipStream),加密流(CrypToStream),网络流(NetworkStream)。

下面是一些代码的展示:

1.文件流(读取文件流-输出文件流)FileStream

using(Streamstreamwrite=new FileStream(@"D:\BaiduYunDownload\45.avi",FileMode.OpenOrCreate))

{

using (Stream streamread = new FileStream(@"D:\BaiduYunDownload\xiawu3.avi", FileMode.Open))

{

byte[] ss=new byte[1024*1024*4];

int len;

while ((len = streamread.Read(ss, 0, ss.Length)) > 0)

{

streamwrite.Write(ss, 0, len);

Thread.Sleep(1000);

}

}

}

2.      内存流(MemoryStream)

string strtxt="dasdfdsfsd";

byte[] bytetxt = Encoding.UTF8.GetBytes(strtxt);

Stream memstream = new MemoryStream();

memstream.Write(bytetxt, 0, bytetxt.Length);

3.压缩流(GZipStream),

压缩:

string s = "dfdfdf";

using (FileStream filestream = File.OpenWrite(@"c:\2.txt"))

{

using (GZipStream zipstream = new GZipStream(filestream, CompressionMode.Compress))

{

byte[] bytes = Encoding.UTF8.GetBytes(s);

zipstream.Write(bytes, 0, bytes.Length);

}

}

解压:

using (FileStream filestream = File.OpenRead(@"c:\2.txt"))

{

using (GZipStream zipstream = new GZipStream(filestream, CompressionMode.Decompress))

{

using (FileStream filestreamwrite = new FileStream(@"c:\3.txt", FileMode.OpenOrCreate))

{

byte[] bytes = new byte[1024 * 1024 * 4];

int length;

while ((length = zipstream.Read(bytes, 0, bytes.Length)) > 0)

{

filestreamwrite.Write(bytes, 0, length);

}

}

}

}

C#学习之Stream的更多相关文章

  1. java8学习之Stream实例剖析

    继续操练Stream,直接上代码: 而咱们要返回ArrayList,显示可以用构造引用来传递到里面,因为它刚好符合Supplier函数式接口的特性:不接收参数返回一个值,所以: 接下来试着将Strea ...

  2. SpringCloud学习之Stream消息驱动【自定义通道】(十一)

    如果不清楚本篇内容的,请务必先去看完上一篇再看本篇,否则阅读起来可能会有部分障碍和困难: 上一篇文章<SpringCloud学习之Stream消息驱动[默认通道](十)>我们简单用自定义通 ...

  3. java8学习之Stream介绍与操作方式详解

    关于默认方法[default method]的思考: 在上一次[http://www.cnblogs.com/webor2006/p/8259057.html]中对接口的默认方法进行了学习,那在Jav ...

  4. java8新特性学习:stream与lambda

    Streams api 对 Stream 的使用就是实现一个 filter-map-reduce 过程,产生一个最终结果,或者导致一个副作用(side effect). 流的操作类型分为两种: Int ...

  5. java8学习之Stream源码分析

    上一次已经将Collectors类中的各种系统收集器的源代码进行了完整的学习,而在之前咱们已经花了大量的篇幅对其Stream进行了详细的示例学习,如: 那接下来则通过源代码的角度来对Stream的运作 ...

  6. java8学习之Stream陷阱剖析

    上一次[http://www.cnblogs.com/webor2006/p/8297603.html]在最后用stream.iterate()生成了6个奇数,接着基于它来实现如下需求:找出该流中大于 ...

  7. java8学习之Stream深度解析与源码实践

    继续对流进行学习,首先先说明一下流的特点: 1.Collection提供了新的stream()方法. 2.流不存储,通过管道的方式获取值. 3.本质是函数式的,对流的操作会生成一个结果,不过并不会修改 ...

  8. Java8学习(4)-Stream流

    Stream和Collection的区别是什么 流和集合的区别是什么? 粗略地说, 集合和流之间的差异就在于什么时候进行计算.集合是一个内存中的数据结构,它包含数据结构中目前所有的值--集合中的每个元 ...

  9. go微服务框架go-micro深度学习(五) stream 调用过程详解

        上一篇写了一下rpc调用过程的实现方式,简单来说就是服务端把实现了接口的结构体对象进行反射,抽取方法,签名,保存,客户端调用的时候go-micro封请求数据,服务端接收到请求时,找到需要调用调 ...

随机推荐

  1. 驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址

    驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址 最近重新看了乾龙_Heron的<ARM 上电启动及 Uboot 代码分析>(下简称<代码分析>) ...

  2. (转)提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  3. sql server 分页存储过程

    ----------------------分页存储过程------------------------------------------------------------------------ ...

  4. SQL Server创建复合索引时,复合索引列顺序对查询的性能影响

    说说复合索引 写索引的博客太多了,一直不想动手写,有一下两个原因:一是觉得有炒剩饭的嫌疑,有兄弟曾说:索引吗,只要在查询条件上建索引就行了,真的可以这么暴力吗?二来觉得,索引是个非常大的话题,很难概括 ...

  5. AFN中的PATCH 和 DELETE 请求方式

    - (nullable NSURLSessionDataTask *)PATCH:(NSString *)URLString parameters:(nullable id)parameters su ...

  6. Coursera Machine Learning : Regression 评估性能

    评估性能 评估损失 1.Training Error 首先要通过数据来训练模型,选取数据中的一部分作为训练数据. 损失函数可以使用绝对值误差或者平方误差等方法来计算,这里使用平方误差的方法,即: (y ...

  7. 在ubuntu16编译安装nginx-1.10.2(full)完全自带组件

    第一步:先安装全部用到的包 apt install gcc libpcre++-dev libssl-dev make \ libxml2-dev libxslt-dev libgd-dev libg ...

  8. PHP与memcache安装使用说明

    最近网站流量上来后,数据库连接数一直偏高,分析了下,都是正常请求,只是网站功能分的细,单页面数据库查询句偏多了,很多数据是没必要实时查询,缓存起来就可以的!考虑必须用memcache缓存了,减轻mys ...

  9. UNIX 系统调用函数errno返回值搜集(in updating )

    当Unix系统级函数遇到错误时,它们会典型地返回-1,并设置全局整数变量errno来表示什么出错了 阅读redis源码的时候,发现如果对系统级函数出错时的errno比较熟悉,写起程序来会游刃有余不少. ...

  10. 用muduo实现memcached协议的例子

    最近花了两天时间用 muduo 部分实现了 memcached 服务器协议,代码位于 examples/memcached/server,能通过 memcached 的大部分测试用例(incr/dec ...