电子课件章数据流操作_第1页
电子课件章数据流操作_第2页
电子课件章数据流操作_第3页
电子课件章数据流操作_第4页
电子课件章数据流操作_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据流操作本讲大纲:1、流操作类介绍支持网站:2、文件流类3、文本文件的写入与读取4、二进制文件的写入与读取流操作类介绍1.流操作流中包含的数据可能来自内存、文件或TCP/IP套接字。流包含以下几种可应用于自身的基本操作。读取。将数据从流传输到数据结构(如字符串或字节数组)中。写入。将数据从数据源传输到流中。查找。查询和修改在流中的位置。2.流的类型在.NET

Framework中,流由Stream类来表示,该类构成了所有其他流的抽象类。不能直接创建Stream类的实例,但是必须使用它实现其中的一个类。文件流类(1)C#中,文件流类使用FileStream类表示,该类公开以文件为主的Stream,它表示在磁盘或网络路径上指向文件的流。一个FileStream类的实例实际上代表一个磁盘文件,它通过Seek方法进行对文件的随机访问,也同时包含了流的标准输入、标准输出和标准错误等。FileStream默认对文件的打开方式是同步的,但它同样很好地支持异步操作。

说明:FileStream对象支持使用Seek方法对文件进行随机访问,Seek方法允许将读取/写入位置移动到文件中的任意位置。属性说明CanRead获取一个值,该值指示当前流是否支持读取CanSeek获取一个值,该值指示当前流是否支持查找CanTimeout获取一个值,该值确定当前流是否可以超时CanWrite获取一个值,该值指示当前流是否支持写入IsAsync获取一个值,该值指示FileStream是异步还是同步打开的Length获取用字节表示的流长度Name获取传递给构造函数的FileStream的名称Position获取或设置此流的当前位置ReadTimeout获取或设置一个值,该值确定流在超时前尝试读取多长时间WriteTimeout获取或设置一个值,该值确定流在超时前尝试写入多长时间文件流类(2)例如,下面代码通过使用FileStream对象打开Test.txt文本文件并对其进行读写访问。

FileStreamaFile=newFileStream("Test.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite)方法说明BeginRead开始异步读操作BeginWrite开始异步写操作Close关闭当前流并释放与之关联的所有资源EndRead等待挂起的异步读取完成EndWrite结束异步写入,在I/O操作完成之前一直阻止Lock允许读取访问的同时防止其他进程更改FileStreamRead从流中读取字节块并将该数据写入给定缓冲区中ReadByte从文件中读取一个字节,并将读取位置提升一个字节Seek将该流的当前位置设置为给定值SetLength将该流的长度设置为给定值Unlock允许其他进程访问以前锁定的某个文件的全部或部分Write使用从缓冲区读取的数据将字节块写入该流文本文件的写入与读取(1)1.StreamWriter类StreamWriter是专门用来处理文本文件的类,可以方便地向文本文件中写入字符串。同时也负责重要的转换和处理向FileStream对象写入工作。说明:StreamWriter类默认使用UTF8Encoding编码来进行创建。技巧:StreamWriter类有两个最重要、最常用的方法,一个是Write方法,另一个是WriteLine方法,这两个方法都是用来向文本文件中写入字符串的,但二者也有区别:WriteLine方法只用于字符串,并且会自动追加一个换行符(回车\换行);而Write方法不追加换行符,而且可以向文本流写入字符串及任何基本数据类型(int32、single等)的文本形式。属性说明Encoding获取将输出写入到其中的EncodingFormatprovider获取控制格式设置的对象NewLine获取或设置由当前TextWriter使用的行结束符字符串方法说明Close关闭当前的StringWriter和基础流Write写入到StringWriter的此实例中WriteLine写入重载参数指定的某些数据,后跟行结束符文本文件的写入与读取(2)2.StreamReader类StreamReader是专门用来读取文本文件的类,StreamReader可以从底层Stream对象创建StreamReader对象的实例,而且也能指定编码规范参数。创建StreamReader对象后,它提供了许多用于读取和浏览字符数据的方法。方法说明Close关闭StringReaderRead读取输入字符串中的下一个字符或下一组字符ReadBlock从当前流中读取最大count的字符并从index开始将该数据写入BufferReadLine从基础字符串中读取一行ReadToEnd将整个流或从流的当前位置到流的结尾作为字符串读取二进制文件的写入与读取(1)1.BinaryWriter类BinaryWriter类以二进制形式将基元类型写入流,并支持用特定的编码写入字符串。方法说明Close关闭当前的BinaryWriter和基础流Seek设置当前流中的位置Write将值写入当前流二进制文件的写入与读取(2)2.BinaryReader类BinaryReader用特定的编码将基元数据类型读作二进制值。方法说明Close关闭当前阅读器及基础流PeekChar返回下一个可用的字符,并且不提升字节或字符的位置Read从基础流中读取字符,并提升流的当前位置ReadBoolean从当前流中读取Boolean值,并使该流的当前位置提升一个字节ReanByte从当前流中读取下一个字节,并使流的当前位置提升一个字节ReadBytes从当前流中将count个字节读入字节数组,并使当前位置提升count个字节ReadChar从当前流中读取下一个字符,并根据所使用的Encoding和从流中读取的特定字符,提升流的当前位置ReadChars从当前流中读取count个字符,以字符数组的形式返回数据,并根据所使用的Encoding

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论