- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 10 章 流I/O 目 标 了解C#中文件处理的原理和过程 掌握目录操作的基本方法 掌握文件读写的基本方法 C#中文件存储的主要形式 文件在计算机中的存储结构 文件在计算机存储结构 文件在计算机存储结构 System.IO 命名空间 对目录的操作需求 建立目录(一般由操作系统执行); 移动目录(一般由操作系统执行); 获取目录中的子目录名; 获取目录中的文件名; 获取本目录的父目录名; 获取目录所在磁盘的盘符; 获取目录的属性、创建时间等信息。 只有先解决目录的问题,才能解决文件的问题!! 对目录的操作 通过Directory和DirectoryInfo两个类对目录操作,其中,Directory类提供静态方法, DirectoryInfo类提供实例方法和属性满足目录操作的一般要求。 Directory类的主要静态方法 DirectoryInfo类的主要属性和方法 为什么同时具有两个目录操作的类呢? 继承过去成熟语言的习惯。 目录操作举例:example_directory1 (1)获取驱动器名,并将驱动器名存入数组: string[ ] strDrives=Environment.GetLogicalDrives(); (2)建立DirectoryInfo对象:(可以是任意级目录) DirectoryInfo dir = new DirectoryInfo(listBox1.Text); (3)获取当前DirectoryInfo对象指向目录的子目录: DirectoryInfo[ ] subdir = dir.GetDirectories(); 目录名为subdir数组元素的Name属性 (4) 获取当前DirectoryInfo对象指向目录中的文件: FileInfo[] files = dir.GetFiles(); 文件名为files数组元素的Name属性。 DirectoryInfo类关键属性 directory.Name:相对目录,用于显示 directory.FullName:绝对目录,用于对目录寻址 对文件的操作 通过File和FileInfo两个类实现对文件操作,其中,File类提供静态方法, FileInfo提供实例方法,满足对文件操作的一般要求。 File类的主要静态方法 FileInfo类的主要属性和方法 为什么同时具有两个文件操作的类呢? 对文件的操作种类需求 文件的建立和删除; 文件的拷贝; 文件的搬移; 文件的读写。 在实际程序中,最常用的文件的读写,文件读写的本质是磁盘文件与内存交换数据。 文件的种类 二进制文件:必须能够提前被程序或硬件处理器识别从而知道其存储形式的文件。 文本文件:以字符为最小信息单位构成的文件。 二进制文件和文本文件的区别 对文件读写操作的基本方法 对文件读写操作 读写文本文件 3-1 读写文本文件 3-2 FileStream 构造函数 FileMode 和FileShare FileMode Append Create CreateNew Open OpenOrCreate Truncate 文件读写例子 4-1 文件读写例子 文件读写例子 4-3 文件读写例子 4-4 读写二进制文件 要使用 BinaryReader 和 BinaryWriter 类 这两个对象都需要在FileStream上创建 二进制文件读写对象 写二进制文件 读二进制文件 读写内存流 BufferedStream 构造函数 通过缓冲区交换数据 2-1 通过缓冲区交换数据 2-2 示例应用程序 3-1 示例应用程序 3-2 示例应用程序 3-3 总结 File是静态对象,提供对文件的创建、拷贝、移动和删除等一系列操作 File.Create(文件名)可以创建新的文件,并结合FileStream对象来进行读写操作 FileStream 和BinaryReader、BinaryWriter对象结合起来可对二进制数据进行操作 在C#中指明文件名的时候,要使用转义字符“\\” 内存流提供无法调整大小的数据流视图,而且只能向其写入 BufferedStream对象对缓冲区进行读写 byte[] buffer = new Byte[sizeBuff]; int bytesRead; while ((bytesRead = bufferedInput.Read(buffer,0,sizeBuff)) 0 ) { bufferedOutput.Write(buffer,0,bytesRead); } Console.WriteLine(); Console.WriteLine(给定备份的文件已创建); bufferedOutput.Flush( ); bufferedIn
您可能关注的文档
- CAD基础第六章 填充图案、面域及块.ppt
- cad基础练习与各种命令的使用.ppt
- 第6章 系统扩展-存储器和IO.ppt
- CAD技巧_管理图层知识.ppt
- 第6章 显示卡和显示器1.ppt
- cad兼容性问题副本.doc
- 第6章 信号及系统的时域及频域特性.ppt
- 第6章(树及二叉树).ppt
- CAD教案第5章_线型、线宽、颜色及图层.ppt
- 第6章(应用层与IPV6)_new.ppt
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)