圆底洗菜槽项目可行性报告(2013年发改委评审通过案例范文)-专家免费咨询_第1页
圆底洗菜槽项目可行性报告(2013年发改委评审通过案例范文)-专家免费咨询_第2页
圆底洗菜槽项目可行性报告(2013年发改委评审通过案例范文)-专家免费咨询_第3页
圆底洗菜槽项目可行性报告(2013年发改委评审通过案例范文)-专家免费咨询_第4页
圆底洗菜槽项目可行性报告(2013年发改委评审通过案例范文)-专家免费咨询_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

第12章文件和流文件是在各种媒质上永久存储的数据的有序集合。它是一种进行数据读写操作的基本对象。流非常类似单独的磁盘文件,它也是进行数据读取操作的基本对象。本章将为大家讲述文件操作最常用的四个类文件类FILE、文件夹类DIRECTORY、文件信息类FILEINFO和文件夹信息类DIRECTORYINFO。本章还将为大家介绍流的一些常用类。包括文件流类FILESTREAM、流写入类STREAMWRITER、流读取类STREAMREADER、二进制流写入类BINARYWRITER和二进制流读取类BINARYREADER。121SYSTEMIO类在SYSTEMIO类中提供了多种类型,用于进行文件和流的读写操作。这些操作可以同步进行,也可以异步进行。下表中列出了SYSTEMIO类下的部分类。类名说明BINARYREADER用特定的编码将基元数据类型读作二进制值BINARYWRITER以二进制形式将基元类型写入流,并支持用特定的编码写入字符串BUFFEREDSTREAM给另一流上的读写操作添加一个缓冲层。无法继承此类DIRECTORY公开用于创建、移动和枚举通过目录和子目录的静态方法。无法继承此类DIRECTORYINFO公开用于创建、移动和枚举目录和子目录的实例方法。无法继承此类DIRECTORYNOTFOUNDEXCEPTION当找不到文件或目录的一部分时所引发的异常DRIVEINFO提供对有关驱动器的信息的访问DRIVENOTFOUNDEXCEPTION当尝试访问的驱动器或共享不可用时引发的异常ENDOFSTREAMEXCEPTION读操作试图超出流的末尾时引发的异常ERROREVENTARGS为ERROR事件提供数据FILE提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建FILESTREAM对象FILEINFO提供创建、复制、删除、移动和打开文件的实例方法,并且帮助创建FILESTREAM对象。无法继承此类122文件类FILEFILE类是一个静态类。它不能够显式地创建一个对象实例。但是可以使用类名加静态方法名直接进行调用。FILE类通常用于一些比较典型的文件处理操作。例如,文件创建、打开、移动、复制、重命名、删除和追加。1221文件的创建和打开下表是FILE类提供的一些常用的静态方法。其中,最常用的方法是CREATE。CREATE方法用来在指定的路径中创建文件。该方法语法如下图所示。其中,PATH参数表示要创建的文件路径。该方法返回一个文件流对象。方法说明CREATETEXTSTRINGFILEPATH创建或打开一个文件用于写入UTF8编码的文本OPENTEXTSTRINGFILEPATH打开现有UTF8编码文本文件以进行读取OPENSTRINGFILEPATH,FILEMODE打开指定路径上的FILESTREAM,具有读/写访问权限CREATESTRINGFILEPATH在指定路径中创建文件OPENREADSTRINGFILEPATH打开现有文件以进行读取APPENDTEXTSTRINGFILEPATH创建一个STREAMWRITER,它将UTF8编码文本追加到现有文件【示例121】以下程序使用CREATE方法在D盘C目录下创建一个文件FILETXT。在该例中,表示忽略转译符。在示例121中,M_PATH被赋值为”D/C/FILETXT”,也可以写成”DCFILETXT”。也就是说,加的情况下,“/”或“”都是正确的。如果不加,要写为“DCFILETXT”。而且,不论有没有,盘符后面的“/”或“”或“”都可以省略。注意本章代码必须添加以下代码,以引用USINGSYSTEMIO命名空间。否则,会出现下图所示的错误。1222判断文件是否存在通常在创建和删除文件之前都需要判断文件是否存在。假如,在创建文件之前没有判断文件是否存在。这样,创建的新文件就会覆盖原有文件,造成数据丢失。判断文件是否存在的方法声明如下图所示。其中,参数PATH指定文件路径。如果文件不存在,或者访问者不具有访问此文件的权限,返回FALSE。【示例122】以下程序判断文件是否存在。1223复制文件复制文件指的是从读取一个文件的内容,并将读取到的内容添加到另一文件中。复制文件时需要指出需要读取的文件位置和大小等方面的信息,还需要指定目标文件的位置。其格式如下图所示。其中,该方法的返回值为空。SOURCEFILENAME是要复制的文件,DESTFILENAME是目标文件的名称,OVERWRITE表示是否可以改写目标文件,是则为TRUE;否则为FALSE。【示例123】以下代码演示了复制文件的方式。在该例中,必须判断文件是否存在。如果不存在,则需要创建。如果存在便可复制。注意文件复制复制的是文件内容,不是文件。1224删除文件当要删除文件的时候,可以直接调用DELETE方法便可删除文件。但是也需要判断文件是否存在。删除文件的格式如下图所示。其中,参数PATH表示要删除的文件。【示例124】以下程序演示了文件的删除。其中,与文件复制相同,必须判断文件是否存在。1225文件的加密和解密加密和解密文件是为了防止没有授权的访问者看到不应当看到的信息。文件的加密和解密的声明如下图所示。其中,参数FILENAME表示需要进行加密和解密的文件名称。【示例125】以下程序介绍文件是如何加密和解密的。注意加密文件后只有调用此方法的帐户才能解密文件。1226文件读取FILE类提供了多种以READ开头的文件读取方法,较常用的声明如下表所示。声明含义PUBLICSTATICBYTEREADALLBYTESSTRINGPATH打开一个文件,将文件的内容读入一个字符串,然后关闭该文件。返回一个字节数组PUBLICSTATICSTRINGREADALLLINESSTRINGPATH打开一个文本文件,读取文件的所有行,然后关闭该文件。返回一个字符串数组PUBLICSTATICSTRINGREADALLLINESSTRINGPATH,ENCODINGENCODING打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。返回一个字符串数组PUBLICSTATICSTRINGREADALLTEXTSTRINGPATH打开一个文本文件,读取文件的所有行,然后关闭该文件。返回一个字符串PUBLICSTATICSTRINGREADALLTEXTSTRINGPATH,ENCODINGENCODING打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。返回一个字符串123文件夹类DIRECTORYDIRECTORY类是进行目录管理的。利用它,我们可以完成对目录及子目录进行创建、移动、浏览等操作,甚至还可以定义隐藏目录和只读目录。DIRECTORY的构造函数形式如下PUBLICDIRECTORYSTRINGPATH其中,PATH表示目录所在的路径。DIRECTORY类的主要属性如下表所示。属性含义ATTRIBUTES0X01表示只读,0X02表示隐藏NAME当前路径名PARENT上一级父目录名ROOT所有根目录名CREATIONTIME目录创建时间LASTACCESSTIME上一次访问目录的时间LASTWRITETIME上一次修改目录的时间常用的DIRECTORY类的成员方法如下表所示。方法说明CREATEDIRECTORY创建指定路径中的所有目录DELETE删除指定的目录EXISTS确定给定路径是否引用磁盘上的现有目录GETCURRENTDIRECTORY获取应用程序的当前工作目录GETDIRECTORIES获取指定目录中子目录的名称GETFILES返回指定目录中的文件的名称GETLOGICALDRIVES检索此计算机上格式为“”的逻辑驱动器的名称GETPARENT检索指定路径的父目录,包括绝对路径和相对路径MOVE将文件或目录及其内容移到新位置1231创建文件夹文件夹的创建跟文件的创建相似。其格式如下图所示。【示例126】利用DIRECTORY的CREATEDIRECTORY方法创建目录。1232删除文件夹文件夹的删除与文件的删除也相似。其格式如下图所示。其中,参数PATH表示要删除的文件夹。【示例127】以下程序利用DIRECTORY类的DELETE方法删除文件夹。其中,在删除文件夹的时候,需要利用EXISTS方法判断文件夹是否存在。如果存在,直接删除。1233获取文件夹获取文件夹的声明方式如下PUBLICSTATICSTRINGGETCURRENTDIRECTORY获取应用程序的当前工作目录PUBLICSTATICSTRINGGETDIRECTORIESSTRINGPATH获取指定目录的子目录,返回一个字符串数组PUBLICSTATICSTRINGGETDIRECTORIESSTRINGPATH,STRINGSEARCHPATTERN使用指定的搜索模式,获取指定目录中的子目录。搜索模式可以使用通配符进行搜索,返回字符串数组。PUBLICSTATICSTRINGGETDIRECTORIESSTRINGPATH,STRINGSEARCHPATTERN,SEARCHOPTIONSEARCHOPTION使用指定的搜索模式,获取指定目录中的子目录。可经由SEARCHOPTION,指定操作是否包含子目录。【示例128】以下程序介绍如何获取文件目录。124文件信息类FILEINFO文件信息类FILEINFO与FILE类不同。虽然它也提供了创建、复制、删除、打开等方法。但是它提供的是实例方法。如果要使用FILEINFO类,必须实例化一个FILEINFO对象。FILEINFO常用属性,如下表所示。【示例129】以下程序利用FILEINFO类的EXISTS方法判断文件是否存在,同时也调用DELETE方法删除文件。属性说明ATTRIBUTES获取或设置当前FILESYSTEMINFO的FILEATTRIBUTESCREATIONTIME获取或设置当前FILESYSTEMINFO对象的创建时间DIRECTORY获取父目录的实例DIRECTORYNAME获取表示目录的完整路径的字符串EXISTS获取指示文件是否存在的值EXTENSION获取表示文件扩展名部分的字符串FULLNAME获取目录或文件的完整目录ISREADONLY获取或设置确定当前文件是否为只读的值LENGTH获取当前文件的大小NAME获取文件名125文件夹信息类DIRECTORYINFODIRECTORYINFO类同FILEINFO类相同,都是实例化类。因此,在使用的时候都得实例化对象。DIRECTORYINFO类主要用于管理文件夹操作。他与FILEINFO类共享了许多相同的属性和方法。DIRECTORYINFO类的常用属性如下表所示。【示例1210】以下程序演示了如何利用DIRECTORYINFO类创建、移动、删除文件夹,以及获取文件夹的信息。属性说明ATTRIBUTES获取或设置当前FILESYSTEMINFO的FILEATTRIBUTESCREATIONTIME获取或设置当前FILESYSTEMINFO对象的创建时间EXISTS获取指示目录是否存在的值EXTENSION获取表示文件扩展名部分的字符串NAME获取此DIRECTORYINFO实例的名称PARENT获取指定子目录的父目录ROOT获取路径的根部分126流流是NET操作文件的基本类。流分为输入流和输出流。输入流用于读取数据。输入流可以来源于很多设备。输出流则用于向外部目标写数据。NET中常见的流类如下表所示。类说明STREAM抽象的基类STREAM,支持读写字节FILESTREAM支持通过SEEK方法随机访问文件,支持同步和异步操作MEMORYSTREAM无缓冲的流,可以在内存中直接访问封装的数据BUFFEREDSTREAM为流添加缓冲过程TEXTREADER用于UNICODE字符的输出STREAMREADER从STREAM读取字符,并用ENCODING进行字符和字节之间的转换STRINGREADER从STRING读取字符,允许使用相同的API处理STRINGTEXTWRITER用于UNICODE字符的输入STREAMWRITER向STRING写字符,并且使用ENCODING将字符转换为字节STRINGWRITER允许使用相同的API处理STRINGBINARYREADER从流中读取二进制数据BINARYWRITER向流中写入二进制数据127文件流类FILESTREAMFILESTREAM文件流类,为文件的读写操作提供通道。而FILE对象相当于提供一个文件句柄,在文件操作中,针对FILESTREAM对象的操作必须首先实例化一个FILESTREAM类对象后才可以使用。这点与FILE类的操作是不一样的。下面我们来具体地学习文件流类FILESTREAM。1271FILESTREAM文件流类的创建文件流类FILESTREAM公开了以文件为主的STREAM,既支持同步读写操作,也支持异步读写操作。FILESTREAM类的特点是操作字节和字节数组。常用的构造函数的声明如下表所示。声明说明PUBLICFILESTREAMSTRINGPATH,FILEMODEMODE使用指定的路径和创建模式FILESTREAM类的实例PUBLICFILESTREAMSTRINGPATH,FILEMODEMODE,FILEACCESSACCESS使用指定的路径和创建模式以及共享权限创建FILESTREAM类的实例PUBLICFILESTREAMSTRINGPATH,FILEMODEMODE,FILEACCESSACCESS,FILESHARESHARE使用指定的路径和创建模式以及共享权限创建FILESTREAM类的实例FILEMODE指定创建文件流实例时的打开指定文件时的模式,有如下几种可选值。QAPPEND打开文件并定位到文件尾,或创建新文件。QCREATE创建新的文件,如果文件存在则被覆盖。QCREATENEW创建新的文件,如果文件存在,则引发IOEXCEPTION。QOPEN打开现有文件,如果文件不存在,则引发FILENOTFOUNDEXCEPTION。QOPENORCREATE打开文件,如果不存在,创建新文件。QTRUNCATE打开现有文件,并将打开的文件截断为0字节大小。FILEACCESS用于指定读和写的访问权限。有如下几种可选值。QREAD对文件的读访问。QREADWRITE对文件的可读写访问。QWRITE对文件的写访问。FILESHARE指定共享访问权限。共享访问权限是指如果有多个人同时对某一文件进行并发操作的使用权限。有如下几种可选值。QDELETE允许随后的请求删除文件。QINHERITABLE使文件名柄由子进程继承。QNONE文件以独占方式打开,关闭前,任何请求都将失败。QREAD允许其他请求读取。QREADWRITE允许其他请求读取和写入。QWRITE允许其他人写入。【实例1211】以下代码调用了文件流类FILESTREAM的三种常用构造函数。1272获取和设置文件流属性信息文件流类FILESTREAM的常用属性如下表所示。【示例1212】以下程序演示了获取和设置文件流属性的操作。属性说明PUBLICOVERRIDEBOOLCANREADGET是否支持读取PUBLICOVERRIDEBOOLCANSEEKGET是否支持查找PUBLICOVERRIDEBOOLCANWRITEGET是否支持写PUBLICOVERRIDELOOGLENGTHGET获取流的长度PUBLICOVERRIDEVOIDSETLENGTHLONGVALUE设置流的长度PUBLICOVERRIDELONGPOSITIONGETSET获取或设置文件流的当前位置PUBLICVIRTUALBOOLISASYNCGET指定文件流是同步还是异部打开128流写入类STREAMWRITERSTREAMWRITER类提供了7种重载的构造函数。比较常用的两种构造函数的声明方式分别如下图所示。其中,第一种构造函数是用UTF8编码及默认缓冲区大小,创建STREAMWRITER类的实例。参数STREAM表示要写入的流。第二种构造函数是使用默认编码和缓冲区大小,创建STREAMWRITER类的实例。参数PATH表示要向其中写入的完整文件路径,也可以是文件名。【示例1213】以下程序演示了STREAMWRITER类的两种不同的构造函数。129流读取类STREAMREADERSTREAMREADER类是用于读取字节数组或字符的,包含可将单个字符、字符块、字符行或整个文件读入一个串变量的方法。一般与STREAMWRITER类配套使用。1291创建STREAMREADERSTREAMREADER类提供了10种构造函数,其中最常用的两种声明方式如下图所示。其中,第一种为指定的流初始化STREAMREADER类的实例。参数STREAM表示要读取的流。第二种为指定的文件名初始化STREAMREADER类的实例。参数PATH表示要读取的完整文件路径。【示例1214】以下程序演示了STREAMREADER类的两种不同的构造函数。1292读取字符或字符

温馨提示

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

评论

0/150

提交评论