第7章:读写.ppt_第1页
第7章:读写.ppt_第2页
第7章:读写.ppt_第3页
第7章:读写.ppt_第4页
第7章:读写.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

第7章 文件读写 伍星wuxing 重庆大学计算机学院 提纲 7 1流文件简介 NetFramework中进行的所有输入和输出工作都要用到流流是串行化设备的抽象表示串行化设备可以以一次访问一个字节存储数据设备可以是磁盘文件 网络通道 内存位置或其他支持以线性方式读写的对象 当应用程序从文件输入流 网络输入流或其他流中读取数据时 可以转换并重用类似的代码 使用流还可以忽略每一种设备的物理机制 无需担心硬盘或内存分配问题 C 中按照数据流动的方向 可以将流分为两种类型 输入流和输出流 7 2 1字节流的读写 FileStream类是提供了在文件中读写字节的方法 FileStream对象在磁盘或网络路径上指向文件的流 通过其可以指向的文件进行读写操作 FileStream操作文件必须先创建一个FileStream类的实例publicFileStream stringpath FileModemode FileAccessaccess 1 path 被操作文件的名称 包含完整的路径说明 2 mode 被操作文件的模式 包括Append Create CreateNew Open OpenOrCreate Truncate 3 access 文件的访问方式 Read Write ReadWrite 7 2 1字节流的读写 FileStream类用于字节读写操作的方法 7 2 1字节流的读写 例7 1创建如图7 1所示Windows窗体程序 利用FileStream对象的ReadByte 方法字节读取指定文件 并将读出的内容在文本框中显示 图7 1字节流方式读文件 7 2 1字节流的读写 privatevoidbutton2 Click objectsender EventArgse DialogResultdialogResult openFileDialog1 ShowDialog if dialogResult DialogResult OK textBox1 Text openFileDialog1 FileName FileStreamfileStream newFileStream textBox1 Text FileMode Open FileAccess Read richTextBox1 Clear for inti 0 i fileStream Length i richTextBox1 Text char fileStream ReadByte fileStream Close 7 2 1字节流的读写 intRead byte array intoffset intcount 1 array 从文件中读出数据的存放空间 2 offset 读入数据在array中存放的起始位置 3 count 最多读取的字节数 4 返回值 读入缓冲区中的总字节数 如果当前的字节数没有所请求那么多 则总字节数可能小于所请求的字节数 或者如果已到达流的末尾 则为零 例7 2创建如果7 2所示的Windows窗体程序 程序运行时将指定文件的内容读出并在富文本框中显示读出的文件内容 要求程序中使用FileStream对象的Read方法读取文件数据 7 2 1字节流的读写 FileStreamfileStream newFileStream textBox1 Text FileMode Open richTextBox1 Clear intlength int fileStream Length Byte readByte newByte length fileStream Read readByte 0 length for inti 0 i length i richTextBox1 Text char readByte i fileStream Close 7 2 1字节流的读写 例7 2创建如果7 2所示的Windows窗体程序 程序运行时将指定文件的内容读出并在富文本框中显示读出的文件内容 要求程序中使用FileStream对象的Read方法读取文件数据 图7 3字节流方式写文件 7 2 1字节流的读写 例7 3创建如图7 3所示的Windows窗体程序 程序运行时 在富文本框中输入文本内容 然后使用FileStream类的WriteByte方法将富文本框中的内容用追加的方式写入到指定文件 FileStreamfileStream newFileStream textBox1 Text FileMode Append ASCIIEncodingae newASCIIEncoding byte writeByte ae GetBytes richTextBox1 Text for inti 0 i richTextBox1 Text Length i fileStream WriteByte writeByte i fileStream Close richTextBox1 Clear FileStream类的Write方法可以将一个数据块写入到指定文件Write方法的最常用形式为 intWrite byte array intoffset intcount 参数基本意义与Read方法相同 其功能是将array中的数据从offset指定的位置开始 向指定文件中写入count个字节 7 2 2字符流的读写 如处理的数据文件中包含的是Unicode编码字符 虽然也可以用字节流来实现输入输出操作 但是很不方便 甚至可能造成乱码 StreamReader和StreamWriter处理文件的字符方式读写 1 StreamReader类 用于从文件中读取字符 7 2 2字符流的读写 StreamReader类的构造函数进行了重载 StreamReader stringpath StreamReader stringpath Encodingencoding path 文件的绝对路径 文件全名 encoding 从输入流读取字符的编码方式 默认编码方式 UTF8 StreamReaderstreamReader newStreamReader textBox1 Text Encoding Default richTextBox1 Text streamReader ReadToEnd streamReader Close 7 2 2字符流的读写 2 StreamWriter类 向输出流中写入字符数据StreamWriter stringpath StreamWriter stringpath boolappend path参数表示被处理的文件名 append参数是一个布尔值 true 内容追加在指定文件的末尾 false 或省略该选项 内容将覆盖指定文件原内容 StreamWriterstreamWriter newStreamWriter textBox1 Text true streamWriter Write richTextBox1 Text streamWriter Close 7 2 3二进制流的读写 图7 6BinaryWriter写文件 string sNums textBox1 Text Split newchar byte bNums newbyte sNums Length for inti 0 i sNums Length i bNums i byte Parse sNums i ToString FileStreamfs newFileStream textBox2 Text FileMode CreateNew FileAccess Write BinaryWriterbw newBinaryWriter fs bw Write bNums bw Close 7 2 3二进制流的读写 FileStreamfs newFileStream textBox1 Text FileMode Open FileAccess Read byte bNums newbyte 8 BinaryReaderbr newBinaryReader fs bNums br ReadBytes 8 label1 Text bNums 0 for inti 1 i 8 i label1 Text bNums i br Close 7 3文件管理 File类用于文件创建 删除 移动等操作 File类的是静态方法使用这些方法形式是 File 方法名 7 3文件管理 例7 8利用File类实现如下功能 1 创建文件 然后测试文件是否创建成功 2 删除文件 然后测试文件是否删除 privatevoidbtCreate Click objectsender EventArgse stringFileName textBox1 Text try File Create FileName catch IOExceptionex MessageBox Show ex ToString 文件创建失败 privatevoidbtExist Click objectsender EventArgse stringFileName textBox1 Text if File Exists FileName MessageBox Show FileName 存在 判断文件是否存在 elseMessageBox Show FileName 不存在 判断文件是否存在 privatevoidbtDelete Click objectsender EventArgse stringFileName textBox1 Text try File Delete FileName catch IOExceptionex MessageBox Show ex ToString 文件删除失败 7 3文件管理 例7 9利用File类实现如下功能 1 复制文件后分别测试文件源文件和目标文件是否存在 2 移动文件后分别测试文件源文件和目标文件是否存在 图7 8文件复制和移动 7 3文件管理 stringSourceFileName txtSource Text stringTargetFileName txtTarget Text File Copy SourceFileName TargetFileName File Delete TargetFileName File Move SourceFileName TargetFileName 7 3文件管理 FileInfo类的方法与File类的方法非常相似 不同的是FileInfo类必须进行实例化 通过对实例化后的对象才能调用这些相应的方法 例7 10 stringFileName textBox1 Text 用实例 对象 调用Creat方法创建文件FileInfofi newFileInfo FileName fi Create 用实例 对象 调用Exists属性判断文件是否存在if fi Exists 用实例 对象 调用Delete方法删除文件fi Delete MessageBox Show 删除文件成功 7 3文件管理 例7 11 stringSourceFileName textBox1 Text stringTargetFileName textBox2 Text 复制文件FileInfofi newFileInfo SourceFileName fi CopyTo TargetFileName 移动文件FileInfofi newFileInfo SourceFileName fi MoveTo TargetFileName 7 3文件管理 FileInfo类除了Exists属性外 如果为了了解文件的详细信息 可以使用下列属性获取 1 文件所在目录 DirectoryName 2 文件创建时间 CreationTime 3 文件名 Name 4 文件扩展名 Extension 5 文件的全名 含路径 FullName 6 文件的字节长度 Length 7 文件最近一次被访问时间 LastAccessTime 8 文件最近一次被修改时间 LastWriteTime txtFileName Text dia FileName FileInfoinfo newFileInfo dia FileName labAttributes Text n n labAttributes Text 所在目录全路径 info DirectoryName n labAttributes Text 创建时间 info CreationTime n labAttributes Text 最近访问时间 info LastAccessTime n labAttributes Text 最近写入时间 info LastWriteTime n labAttributes Text 全名 info FullName n labAttributes Text 文件名 info Name n labAttributes Text 扩展名 info Extension n labAttributes Text 长度 info Length n 7 4 1目录的创建与删除 Directory类的CreateDirectory方法和DirectoryInfo类实例的Create方法可以按指定的路径创建目录 Directory和DirectoryInfo的Delete方法可以删除指定目录 Directory类的Move方法和DirectoryInfo类实例的MoveTo方法 可以把指定的文件夹连同它所包含的所有内容 一起移动到指定的目标位置 常用形式如下 Directory Move sourceDirectory destinationDirectory DirectoryinfoExample MoveTo destinationDirectory 7 4 1目录的创建与删除 stringdirectoryPath textBox1 Textif Directory Exists directoryPath Directory Delete directoryPath MessageBox Show 目录已存在 需要删除后创建 目录存在 MessageBoxButtons OK MessageBoxIcon Warning Directory CreateDirectory directoryPath stringstr textBox1 Text DirectoryInfodirectoryInfo newDirectoryInfo str if directoryInfo Exists directoryInfo Delete MessageBox Show 目录已存在 需要删除后创建 目录存在 MessageBoxButtons OK MessageBoxIcon Warning directoryInfo Create 7 4 2目录中文件和子目录信息的获取 Directory类的GetFileSystemEntries 方法获取指定目录下的所有文件名和子目录名 该方法的返回值是一个string类型数组 每个数组元素的值是一个包含完整路径的文件名或子目录名 Directory类的GetFiles 方法获取指定目录下全部的文件名 Directory类的GetDirectories 方法获取指定目录下全部的名子目录名 DirectoryInfo类实例的GetFileSystemInfos 方法 也能获取指定目录下的所有文件名和子目录名 但不包含路径 返回值也是一个数组 图7 14查看目录下的文件和子目录 7 4 2目录中文件和子目录信息的获取 stringstr textBox1 Text if Directory Exists str string dirs Directory GetFileSystemEntries str listBox1

温馨提示

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

评论

0/150

提交评论