C#学习之Stream
上节课老师主要讲了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的更多相关文章
- java8学习之Stream实例剖析
继续操练Stream,直接上代码: 而咱们要返回ArrayList,显示可以用构造引用来传递到里面,因为它刚好符合Supplier函数式接口的特性:不接收参数返回一个值,所以: 接下来试着将Strea ...
- SpringCloud学习之Stream消息驱动【自定义通道】(十一)
如果不清楚本篇内容的,请务必先去看完上一篇再看本篇,否则阅读起来可能会有部分障碍和困难: 上一篇文章<SpringCloud学习之Stream消息驱动[默认通道](十)>我们简单用自定义通 ...
- java8学习之Stream介绍与操作方式详解
关于默认方法[default method]的思考: 在上一次[http://www.cnblogs.com/webor2006/p/8259057.html]中对接口的默认方法进行了学习,那在Jav ...
- java8新特性学习:stream与lambda
Streams api 对 Stream 的使用就是实现一个 filter-map-reduce 过程,产生一个最终结果,或者导致一个副作用(side effect). 流的操作类型分为两种: Int ...
- java8学习之Stream源码分析
上一次已经将Collectors类中的各种系统收集器的源代码进行了完整的学习,而在之前咱们已经花了大量的篇幅对其Stream进行了详细的示例学习,如: 那接下来则通过源代码的角度来对Stream的运作 ...
- java8学习之Stream陷阱剖析
上一次[http://www.cnblogs.com/webor2006/p/8297603.html]在最后用stream.iterate()生成了6个奇数,接着基于它来实现如下需求:找出该流中大于 ...
- java8学习之Stream深度解析与源码实践
继续对流进行学习,首先先说明一下流的特点: 1.Collection提供了新的stream()方法. 2.流不存储,通过管道的方式获取值. 3.本质是函数式的,对流的操作会生成一个结果,不过并不会修改 ...
- Java8学习(4)-Stream流
Stream和Collection的区别是什么 流和集合的区别是什么? 粗略地说, 集合和流之间的差异就在于什么时候进行计算.集合是一个内存中的数据结构,它包含数据结构中目前所有的值--集合中的每个元 ...
- go微服务框架go-micro深度学习(五) stream 调用过程详解
上一篇写了一下rpc调用过程的实现方式,简单来说就是服务端把实现了接口的结构体对象进行反射,抽取方法,签名,保存,客户端调用的时候go-micro封请求数据,服务端接收到请求时,找到需要调用调 ...
随机推荐
- JS valueOf与字符串
js在处理字符串和数值加运算的时候会转换数值为字符串 然后执行字符串连接 在覆盖String.prototype.valueOf之前,new String(111)这样的字符串与数值加法也是字符串连接 ...
- windows下安装composer抛出Composer\Downloader\TransportException异常解决办法
1. 把默认的 secure-http 改成false composer config -g secure-http false 2. 修改配置文件 #修改全局文件(推荐) composer conf ...
- clr via c# 读书笔记
WOW64 WOW64 (Windows 位应用程序提供了 位的模拟,可以使大多数 位应用程序在无需修改的情况下运行在 Windows 位版本上. com对象 COM:The Component Ob ...
- CDN系统对网站的性能有极大的提升
CDN系统对网站的性能有极大的提升 打开一个网站 我们只是请求了一个页面.单个页面,实际上所有文件都是一个新的请求.以新浪为例一共发起了35个请求. 这35个请求中.只有一个动态内容.其它均为静态.这 ...
- asp.net应用程序生命周期和asp.net网页的生命周期
一.asp.net应用程序生命周期 asp.net应用程序生命周期以浏览器向web服务器(比如IIS服务器)发送请求为起点,先后经历web服务器下的ISAPI(Internet Server Appl ...
- jQuery系列之操作select标签
每次看完东西基本就忘了,现在决定写一下博客来记录,不知道效果咋样. 一.jQuery操作选择器 1.基本选择器 关于基本选择器,我就不用太多说了,包括了ID.类.标签等选择器. 2.层次选择器 我觉得 ...
- My安卓知识4--Media Player called in state 0
//根据被传递的歌曲名称,选择播放的歌曲 public void playByName(String name){ mp = new MediaPlayer(); t ...
- DSP(1) -- 离散时间信号的序列类型
1.单位采样序列δ(n):在MATLAB 中函数zeros(1,N)产生一个由N个零组成的列向量.它可用来实现有限区间的δ(n).然而,更高明的方法是利用逻辑关系式n==0来实现δ(n). 2.单位阶 ...
- Matlab(3) -- 编写M文件(函数)
转自:http://blog.csdn.net/misskissc/article/details/8178089 matlab的命令编辑窗口(Command Window)界面主要是用来调用系统命令 ...
- 关于springmvc的配置文件
开发常用的springmvc.xml配置文件,spring 3.0 spring-servlet.xml配置. <?xml version="1.0" encoding=&q ...