版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章文件操作《C#程序设计基础入门教程(第3版)》学习目标/Target了解流与文件流,能够说出文件流的概念与分类。
掌握File类的用法,能够使用File类实现文件的创建、复制、移动等操作。掌握FileInfo类的用法,能够使用FileInfo类获取文件的相关信息。掌握Directory类的用法,能够使用Directory类实现目录的创建、删除、查询等操作。掌握DirectoryInfo类的用法,能够使用DirectoryInfo类获取目录的相关信息。学习目标/Target掌握FileStream类的用法,能够使用FileStream类以字节流形式读写文件。
掌握StreamReader类和StreamWriter类的用法,能够使用这两个类实现文本文件的读写。掌握Path类的用法,能够使用Path类获取文件路径信息,以及操作文件路径。掌握BufferedStream类的用法,能够使用BufferedStream类实现文件的高效读写。章节概述/Summary在C#程序中,当操作变量与常量时,这些变量与常量的值是存放在内存中的,程序运行结束后,使用的数据会被全部清除。如果想要长久保存程序中的数据,可以选择使用文件或数据库(将在后面章节中讲解)来存储,文件通常存放在计算机磁盘的指定位置,文件形式可以是记事本、Word文档、图片等。针对文件操作,C#提供了相应的类来实现文件的创建、移动、读写等,本章将对文件操作进行详细讲解。目录/Contents010203流和文件流System.IO命名空间File类和FileInfo类04Directory类和DirectoryInfo类目录/Contents050607FileStream类StreamReader类和StreamWriter类Path类08BufferedStream类流和文件流7.17.1流和文件流了解流与文件流,能够说出文件流的概念与分类。学习目标大多数应用程序都需要实现与设备之间的数据传输,例如,通过键盘输入数据、通过显示器显示程序的运行结果等。在C#中,将这种不同输入/输出设备之间的数据传输抽象表述为“流”,程序可以通过流的方式与输入/输出设备进行数据传输。C#中的“流”都位于System.IO命名空间中,称为I/O(Input/Output,输入/输出)流。7.1流和文件流C#中的流统称为文件流,根据数据的传输方向可将其分为输入流和输出流。为了方便理解,可以把输入流和输出流比作两根“管道”,如图。7.1流和文件流System.IO命名空间7.27.2System.IO命名空间了解System.IO命名空间,能够说出System.IO命名空间中的常用类。学习目标在C#中,文件操作类都位于System.IO命名空间中,因此在使用这些类时需要引入System.IO命名空间。该命名空间中包含很多类,常用类如图。7.2System.IO命名空间File类和FileInfo类7.3前文中讲解了流可以对文件的内容进行读写操作,而在应用程序中还可能需要对文件自身进行一些操作,例如创建、删除或者重命名某个文件,判断磁盘上某个文件是否存在等。针对这些操作,C#提供了File类和FileInfo类,本节将对这两个类进行详细讲解。7.3File类和FileInfo类7.3.1File类掌握File类的用法,能够使用File类实现文件的创建、复制、移动等操作。学习目标File类是一个静态类,它提供了许多静态方法,用于处理文件,使用这些方法可以对文件进行创建、移动、查询和删除等操作。File类常用的静态方法如表。属性说明FileStreamCreate(stringpath)根据传入的路径创建一个文件,如果文件不存在,则创建文件,如果文件存在且不是只读文件,则覆盖其内容WriteAllText(stringpath,stringcontents)创建一个新的文件,将指定的字符串写入该文件。如果文件已存在,则覆盖文件内容voidDelete(stringpath)如果文件存在,则删除指定的文件,如果指定的文件不存在也不引发异常7.3.1File类属性说明boolExists(stringpath)判断指定文件是否存在,若存在则返回true,否则返回falsevoidMove(stringsourceFileName,stringdestFileName)将指定的文件移动到新位置,可以在新位置为文件指定不同的名称FileStreamOpen(stringpath,FileModemode)打开指定路径的文件并返回FileStream对象voidCopy(stringsourceFileName,stringdestFileName)将现有的文件内容复制到新文件中voidCopy(stringsourceFileName,stringdestFileName,booloverwrite)将现有文件内容复制到新文件中,第3个参数用于指定是否覆盖原有文件,true表示覆盖,false表示不覆盖7.3.1File类下面通过一个案例来演示如何调用这些方法。本案例创建一个简单的文件管理器,首先构建一个命令行菜单,提供文件的创建、移动、复制、删除等操作,然后根据用户的选择执行相应的操作。7.3.1File类在解决方案Chapter07中创建一个项目名为Program01的控制台应用程序,具体代码如例。点击查看7.3.1File类运行程序,根据提示,输入不同的数字,执行不同的操作,运行结果如图。7.3.1File类相对路径是指当前文件相对于其他文件(或文件夹)的路径。例如,如果在路径D:\workspace\a\b\下有程序文件b.cs和文本文件a.txt,那么在b.cs文件中调用a.txt文件时,直接写文件名即可。相对路径使用符号“\”表示,具体使用方式如下。(1)在反斜线前面加一个点(.\)表示上一级目录。(2)在反斜线前面加两个点(..\)表示当前文件的根目录。绝对路径是指文件在磁盘上的完整路径,例如,D:\workspace\a\b\a.txt就是a.txt文件的绝对路径。相对路径与绝对路径7.3.1File类7.3.2FileInfo类掌握FileInfo类的用法,能够使用FileInfo类获取文件的相关信息。学习目标FileInfo类主要用于获取和设置文件的属性,例如文件名、路径、大小、创建时间等。FileInfo类是实例类,所有的方法都只能通过FileInfo类的实例对象调用。因此,在使用FileInfo类时,需要先创建FileInfo类的对象。FileInfo类提供了丰富的属性和方法,可用于获取文件信息、复制/移动/删除文件等。7.3.2FileInfo类7.3.2FileInfo类下面分别对FileInfo类对象的创建、FileInfo类的常用属性和FileInfo类的常用方法进行讲解。FileInfo类对象的创建AFileInfo类的常用属性BFileInfo类的常用方法BFileInfo类提供了多个构造方法,其中有一个比较常用的构造方法,需要向该构造方法传递一个文件路径作为参数,系统会获取对应文件的信息,将其保存在创建的FileInfo类对象中。1.FileInfo类对象的创建7.3.2FileInfo类通过该构造方法创建FileInfo类对象的具体代码如下所示。具体代码FileInfofile=newFileInfo(@"C:\Data.txt");
1.FileInfo类对象的创建7.3.2FileInfo类创建FileInfo类对象file,传入一个文件路径作为参数。参数路径前的“@”符号表示不解析转义字符。如果没有“@”符号,则需要使用“\\”替代“\”。因为“\”是转义字符,在程序中要表示一个“\”就需要使用“\\”。示例代码FileInfoaFile=newFileInfo("C:\\Data.txt");1.FileInfo类对象的创建7.3.2FileInfo类FileInfo类提供了很多属性,可用于获取文件的各种信息,如获取文件名称、获取文件所在目录、获取文件大小等。FileInfo类的常用属性如表。属性说明Exists判断文件是否存在,若存在则返回true,否则返回falseName获取文件的名称(不包括路径)Length获取文件的大小(以字节为单位)IsReadOnly用于判断文件是否是只读的DirectoryName用于返回文件目录,且这个属性是只读的7.3.2FileInfo类2.FileInfo类的常用属性除了属性,FileInfo类还提供了多个方法,用于对文件执行创建、删除、移动、复制等操作,FileInfo类的常用方法如表。属性说明Create()创建文件,返回一个FileStream对象CopyTo(stringdestFileName,booloverwrite)将当前文件复制到指定的路径,并可选择是否覆盖现有文件,返回一个新的FileInfo对象,该对象表示复制后的文件MoveTo(stringdestFileName)将当前文件移动到指定的路径,该方法无返回值Delete()删除当前文件,该方法无返回值7.3.2FileInfo类3.FileInfo类的常用方法在解决方案Chapter07中创建一个项目名为Program02的控制台应用程序,具体代码如例。7.3.2FileInfo类3.FileInfo类的常用方法点击查看运行程序,运行结果如图。7.3.2FileInfo类3.FileInfo类的常用方法运行结果C:\temp\file.txt文件Directory类和DirectoryInfo类7.4在程序开发中,不仅需要对文件进行操作,还需要对文件存放的目录进行操作,例如创建目录、删除目录等,为此C#提供了Directory类和DirectoryInfo类。本节将对Directory类与DirectoryInfo类进行详细讲解。7.4Directory类和DirectoryInfo类7.4.1Directory类掌握Directory类的用法,能够使用Directory类实现目录的创建、删除、查询等操作。学习目标Directory类是一个静态类,不可实例化,它提供了许多静态方法用于对文件的存放目录进行操作,例如创建、删除、查询等。Directory类的常用方法如表。属性说明DirectoryInfoCreateDirectory(stringpath)创建指定路径的目录voidDelete(stringpath)删除指定路径的空目录VoidDelete(stringpath,boolrecursive)删除指定路径的目录。如果recursive为true,则会递归删除该目录下的所有文件和子目录7.4.1Directory类属性说明boolExists(stringpath)判断指定路径目录是否存在,若存在,则返回true,否则返回falsestring[]GetDirectories(stringpath)获取指定路径下的所有子目录string[]GetFiles(stringpath)获取指定路径下的所有文件DirectoryInfoGetParent()查找指定路径的父目录,包括相对路径和绝对路径7.4.1Directory类下面通过一个简单的案例学习这些方法的应用。在本案例中,针对D:\temp目录进行一系列操作。在解决方案Chapter07中创建一个项目名为Program03的控制台应用程序,具体代码如例。点击查看7.4.1Directory类运行程序,运行结果如图。7.4.1Directory类7.4.2DirectoryInfo类掌握DirectoryInfo类的用法,能够使用DirectoryInfo类获取目录的相关信息。学习目标DirectoryInfo类的功能与Directory类相似,也是对目录进行操作,DirectoryInfo类提供了一系列的属性和方法。与Directory类不同的是,DirectoryInfo类是一个实例类,必须实例化才能使用。7.4.2DirectoryInfo类下面分别对DirectoryInfo类对象的创建、DirectoryInfo类的常用属性和DirectoryInfo类的常用方法进行讲解。DirectoryInfo类对象的创建ADirectoryInfo类的常用属性BDirectoryInfo类的常用方法C7.4.2DirectoryInfo类DirectoryInfo类提供了多个构造方法,其中,有一个比较常用的构造方法,需要向该构造方法传递一个目录作为参数,系统会获取该目录的信息,并保存在创建的DirectoryInfo类对象中。使用该构造方法创建DirectoryInfo类对象的具体代码如下所示。具体代码DirectoryInfodi=newDirectoryInfo(@"D:\temp");1.DirectoryInfo类对象的创建7.4.2DirectoryInfo类DirectoryInfo类提供了很多属性,用于获取目录的各种信息,如获取目录的创建时间。DirectoryInfo类的常用属性如表。属性说明Parent获取指定子目录的父目录Root获取路径的根目录Name获取当前DirectoryInfo对象的名称FullName获取目录的完整路径Exists判断指定目录是否存在CreationTime获取目录的创建时间7.4.2DirectoryInfo类2.DirectoryInfo类的常用属性除了属性,DirectoryInfo类还提供了多个方法,用于获取目录的相关信息,DirectoryInfo类的常用方法如表。属性说明CreateSubdirectory(stringpath)在指定路径中创建一个或多个子目录GetDirectories(stringpath)获取当前目录的子目录GetFiles()获取当前目录的文件列表Delete()删除指定的目录及其内容GetFileSystemInfos()获取当前目录的子目录和文件列表7.4.2DirectoryInfo类3.DirectoryInfo类的常用方法下面通过一个具体案例了解DirectoryInfo类的应用。在本案例中,使用DirectoryInfo类实现一个目录大小统计器,即给定一个目录,统计该目录下所有子目录及所有文件的大小。7.4.2DirectoryInfo类3.DirectoryInfo类的常用方法编写程序时,可以遵循以下思路。编程思路(1)可以定义一个方法(如GetFolderSize())统计指定目录的大小,在GetFolderSize()方法中,首先获取所有文件并统计这些文件的大小;然后获取所有的子目录,遍历每个子目录,递归调用GetFolderSize()方法统计每个子目录的大小;最后将指定的目录与统计的大小结果以键值对的形式存储到一个字典中。(2)由于目录大小并不确定,在输出时,为增加输出结果的可读性,可以定义一个方法(如FormatBytes())根据目录大小以不同的单位(如B、KB、MB、GB等)输出。在FormatBytes()方法中,定义一个字符串数组存储不同的单位,将目录大小与1024进行取余运算,根据余数(索引)获取单位。7.4.2DirectoryInfo类3.DirectoryInfo类的常用方法在解决方案Chapter07中创建一个项目名为Program04的控制台应用程序,具体代码如例。点击查看3.DirectoryInfo类的常用方法7.4.2DirectoryInfo类运行程序,运行结果如图。7.4.2DirectoryInfo类FileStream类7.5前面学习的File类、FileInfo类主要用于管理文件,如获取文件信息、创建文件、删除文件、移动文件等,如果要对文件进行读写,可以使用FileStream类。FileStream是.NET框架中System.IO命名空间下的一个类,它主要用于读写文件,本节将对FileStream类进行详细讲解。7.5FileStream类7.5.1FileStream类简介掌握FileStream类的用法,能够使用FileStream类的常用方法及属性。学习目标FileStream类提供了一种访问文件系统中的文件的方法,它允许应用程序以字节流的形式读取、写入、管理磁盘或网络路径上的文件,这使得FileStream类能够处理各种类型的数据文件,如图像、音频、视频以及文本文件等。7.5.1FileStream类简介下面分别对FileStream类对象的创建、FileStream类的常用方法和FileStream类的常用属性进行讲解。FileStream类对象的创建AFileStream类的常用方法BFileStream类的常用属性C7.5.1FileStream类简介使用FileStream类读写文件之前,需要创建FileStream类对象。FileStream类提供了很多重载的构造方法,比较常用的构造方法有两个,如表。属性说明publicFileStream(stringpath,FileModemode)使用指定的模式(mode)打开文件(path)publicFileStream(stringpath,FileModemode,FileAccessaccess)在打开文件时,除了指定模式外,还指定了访问权限(access)7.5.1FileStream类简介1.创建FileStream类对象创建FileStream类对象时,需要传入指定文件路径,当FileStream类对象创建完毕时,就意味着已经打开了文件,即构建了文件流,可以对文件进行读写操作了。除了指定文件路径,还可以指定文件打开模式和访问权限,关于文件打开模式和文件访问权限,下面分别进行介绍。7.5.1FileStream类简介1.创建FileStream类对象1文件打开模式:文件访问权限:文件打开模式的类型为FileMode,FileMode是System.IO命名空间中的一个枚举类型,它定义了多个枚举成员,用于指定文件打开模式。2文件访问权限的类型为FileAccess,FileAccess是System.IO
命名空间下的一个枚举类型,它定义了多个枚举成员,用于指定文件的访问权限。FileMode和FileAccess常用的枚举成员如表。枚举类型枚举成员说明FileModeCreateNew创建新文件;如果文件已存在,则抛出异常Create创建新文件;如果文件已存在,则覆盖它Open打开现有文件;如果文件不存在,则抛出异常OpenOrCreate打开现有文件;如果文件不存在,则创建新文件Truncate打开现有文件并清空其内容;如果文件不存在,则抛出异常Append打开现有文件并定位到文件末尾;如果文件不存在,则创建新文件7.5.1FileStream类简介1.创建FileStream类对象FileMode和FileAccess常用的枚举成员如表。枚举类型枚举成员说明FileAccessRead以只读方式打开文件Write以只写方式打开文件ReadWrite以读写方式打开文件7.5.1FileStream类简介1.创建FileStream类对象创建FileStream类对象的示例代码如下。示例代码FileStreamfile1=newFileStream("data1.txt",FileMode.Append);FileStreamfile2=newFileStream("data2.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite);1.创建FileStream类对象7.5.1FileStream类简介创建了FileStream对象file1,打开项目根目录下的data1.txt文件,指定文件打开模式为Append创建了FileStream对象file2,打开项目根目录下的data2.txt文件,指定文件打开模式为OpenOrCreate,文件访问权限为ReadWrite除了上述构造方法外,FileStream类还有一些常用方法,具体如表。方法说明intRead(byte[]array,intoffset,intcount)从流中读取一个数据块并将该数据块写入指定数组中voidWrite(byte[]array,intoffset,intcount)将数组中的数据块写入流中voidFlush()清除流的缓冲区,使得缓冲区中的数据都写入文件中longSeek(longoffset,SeekOriginorigin)将流的当前位置设置为给定值voidClose()关闭当前的FileStream对象并释放所有相关的系统资源7.5.1FileStream类简介2.FileStream类的常用方法FileStream类还提供了一些属性用于获取文件的相关信息,常用的属性如表。方法说明CanRead、CanWrite、CanSeek用于判断流是否支持读取、写入和定位操作Length获取当前文件的长度(以字节为单位)Position获取或设置当前文件内流的位置7.5.1FileStream类简介3.FileStream类的常用属性7.5.2FileStream类读取文件掌握FileStream类的用法,能够使用FileStream类以字节流形式读文件。学习目标使用FileStream类读取文件时,主要调用的方法为Read()方法,该方法可以从流(即文件)读取一个数据块存储到数组中。Read()方法有多种重载形式,但比较常用的是表7-9所示的形式,该形式中3个参数的含义如下所示。1array:offset:字节数组,用于存储从文件中读取的数据。2字节数组中的索引,表示从数组array的offset索引处开始存储数据。7.5.2FileStream类读取文件count:3要从文件中读取的数据块的大小。下面通过一个案例演示使用FileStream类从文件中读取数据。在本案例中,在项目根目录下创建一个名称为“古诗.txt”的文件并写入一首古诗,从文件“古诗.txt”中读取内容并输出到控制台。“古诗.txt”文件如图。7.5.2FileStream类读取文件在解决方案Chapter07中创建一个项目名为Program05的控制台应用程序,具体代码如例。点击查看7.5.2FileStream类读取文件运行程序,运行结果如图。7.5.2FileStream类读取文件程序成功从“古诗.txt”文件中读取了数据并输出到了控制台。FileStream类的内部维护了一个文件位置指针(文件读写指针),它记录了文件当前的读写位置,即从哪个位置开始读写文件。大多数情况下,当打开文件时,文件位置指针指向文件的开始位置。如果想修改指针的位置可以使用FileStream对象的Seek()方法,Seek()方法有两个参数,每个参数的含义如下。7.5.2FileStream类读取文件1offset:origin:文件位置指针要移动的字节数。2文件位置指针移动的参考点,它有3个取值。①Begin:表示从文件开始位置开始移动。②Current:表示从文件当前位置开始移动。③End:表示从文件结束位置开始移动。下面修改Program05\Program.cs,从指定位置开始读取文件“古诗.txt”中的数据。在解决方案Chapter07中创建一个项目名为Program06的控制台应用程序,具体代码如例。点击查看7.5.2FileStream类读取文件运行程序,运行结果如图。7.5.2FileStream类读取文件程序从文件的第5行末尾的“。”符号开始读取,表明程序成功调用Seek()方法移动了文件位置指针,从指定位置开始读取文件。7.5.3FileStream类写入文件掌握FileStream类的用法,能够使用FileStream类以字节流形式写文件。学习目标FileStream类中用于向文件中写入数据的主要方法是Write(),Write()方法也有多种重载形式,比较常用的是表FileStream类的常用方法所示的形式,该形式中3个参数的含义如下。1array:offset:字节数组,用于存储要写入文件的数据。2字节数组中的索引,表示从数组array的offset索引处开始,将数据写入文件。count:3数据块的大小。7.5.3FileStream类写入文件下面通过一个案例来演示使用FileStream类向文件写入数据。在本案例中,实现一个简单的日记本,向日记本中写入一篇日记。在解决方案Chapter07中创建一个项目名为Program07的控制台应用程序,具体代码如例。点击查看7.5.3FileStream类写入文件运行程序,运行结果如图。7.5.3FileStream类写入文件程序执行之后,在根目录下可以看到创建的diary.txt文件,其内容如图。7.5.4实例:备忘录掌握实例:备忘录,能够使用FileStream类对文件进行读取和写入操作。学习目标前面学习了如何使用FileStream类对文件进行读取和写入操作,为了让初学者更好地掌握FileStream类的用法,下面通过一个综合案例演示FileStream类的用法。本案例实现一个简单的备忘录,具体要求如下。1.备忘录提供3个功能,分别是添加日程、查看日程、退出。2.构建一个菜单界面,让用户输入功能选项。根据用户输入的功能选项,调用不同的方法实现日程的添加、查看、退出等。7.5.4实例:备忘录StreamReader类和StreamWriter类7.6前面用到的FileStream类只能通过字节或字节数组的方式对文件进行操作,当处理文本文件时需要在字节与字符数据之间进行转换,使程序显得过于烦琐。为了解决这个问题,C#专门提供了StreamReader类和StreamWriter类来处理文本文件。本节对这两个类进行详细讲解。7.6StreamReader类和StreamWriter类掌握StreamReader类的用法,能够使用StreamReader类实现文本文件的读操作。学习目标7.6.1StreamReader类StreamReader是System.IO命名空间下的一个类,主要用于从流中读取字符。在读取数据时,StreamReader类可以通过指定的编码方式将字节从基础流转换为字符。7.6.1StreamReader类StreamReader类提供了一系列方法和属性用于读取数据,下面分别从StreamReader类对象的创建、StreamReader类常用的方法和StreamReader类常用的属性3个方面进行讲解。StreamReader类对象的创建AStreamReader类常用的方法BStreamReader类常用的属性C7.6.1StreamReader类StreamReader类提供了多个构造方法,比较常用的构造方法有两个,如表。构造方法说明StreamReader(Stringpath)打开指定路径的文件,默认编码方式为UTF-8StreamReader(Streamstream)使用指定的流创建StreamReader对象,默认编码方式为UTF-81.StreamReader类对象的创建7.6.1StreamReader类StreamReader类提供了一系列方法用于读取数据,常用的方法如表。方法说明intRead()从流中读取下一个字符并返回该字符,如果已经到了流的结尾,则返回-1intRead(char[]buffer,intindex,intcount)从流中读取最多count个字符到缓冲区buffer中,从buffer的index索引处开始存放stringReadLine()从流中读取一行字符,直到遇到换行符('\n'),然后返回该行内容。不包含行结束符intPeek()返回下一个可读取的字符而不移动文件位置指针voidClose()关闭StreamReader对象及基础流,并释放系统资源2.StreamReader类常用的方法7.6.1StreamReader类除了方法,StreamReader类还提供了一些属性,用于获取流的相关信息,常用的属性如表。属性说明BaseStream获取当前StreamReader对象的基础流CurrentEncoding获取当前StreamReader对象正在使用的编码方式EndOfStream指示是否已到达流的末尾3.StreamReader类常用的属性7.6.1StreamReader类下面通过一个案例来演示StreamReader类的应用。在D:\temp目录下,有一个介绍中国刺绣的文件,名称为“中国刺绣.txt”,其内容如图。3.StreamReader类常用的属性7.6.1StreamReader类使用StreamReader类将该文件内容读取出来并输出。在解决方案Chapter07中创建一个项目名为Program09的控制台应用程序,具体代码如例。点击查看7.6.1StreamReader类3.StreamReader类常用的属性运行程序,运行结果如图。7.6.1StreamReader类3.StreamReader类常用的属性掌握StreamReader类的用法,能够使用StreamWriter类实现文本文件的写操作。学习目标7.6.2StreamWriter类StreamWriter是System.IO命名空间下的一个类,用于将字符写入流中。下面分别从StreamWriter类对象的创建、StreamWriter类常用的方法和StreamWriter类常用的属性3个方面进行讲解。StreamWriter类对象的创建AStreamWriter类对象的创建BStreamWriter类对象的创建C7.6.2StreamWriter类StreamWriter类提供了多个构造方法,比较常用的构造方法如表。构造方法说明StreamWriter(Stringpath)打开指定路径的文件,默认编码方式为UTF-8StreamWriter(Stringpath,boolappend)打开指定路径的文件,并指定是否追加内容,默认编码方式为UTF-8StreamWriter(Streamstream)使用指定的流创建StreamWriter对象,默认编码方式为UTF-81.StreamWriter类对象的创建7.6.2StreamWriter类StreamWriter类提供了多种方法来写入数据,包括写入单个字符、字符串和整行文本。StreamWriter类常用的方法如表。方法说明voidWrite(charvalue)写入一个字符voidWrite(stringvalue)写入一个字符串voidWrite(char[]buffer)写入一个字符数组voidWrite(char[]buffer,intindex,intcount)从字符数组buffer的index索引开始,读取count个字符写入voidWriteLine()写入一个终止符2.StreamWriter类常用的方法7.6.2StreamWriter类方法说明voidWriteLine(stringvalue)写入一个字符串和一个行终止符voidWriteLine(char[]buffer)写入一个字符数组和一个行终止符voidWriteLine(char[]buffer,intindex,intcount)从字符数组buffer的index索引开始,读取count个字符写入,后面跟着一个行终止符voidFlush()刷新StreamWriter的缓冲区,将缓冲区中的所有数据写入流中voidClose()关闭StreamWriter对象及基础流,释放系统资源2.StreamWriter类常用的方法7.6.2StreamWriter类除了写入数据的方法,StreamWriter类还提供了一些属性,用于获取流的相关信息,常用的属性如表。属性说明Encoding获取StreamWriter对象使用的字符编码。这允许用户根据需要选择不同的字符编码来写入文件BaseStream获取当前StreamWriter对象的基础流AutoFlush获取或设置一个值,该值指示在每次执行写入操作后是否自动刷新当前流3.StreamWriter类常用的属性7.6.2StreamWriter类下面通过一个具体案例演示StreamWriter类的应用。向Program09\Program.cs使用的“D:\temp\中国刺绣.txt”文件中追加一段关于刺绣分类介绍的内容。在解决方案Chapter07中创建一个项目名为Program10的控制台应用程序,具体代码如例。点击查看7.6.2StreamWriter类3.StreamWriter类常用的属性运行程序,根据提示输入刺绣分类介绍,运行结果如图。7.6.2StreamWriter类3.StreamWriter类常用的属性打开“D:\temp\中国刺绣.txt”文件确认内容是否追加成功,“D:\temp\中国刺绣.txt”文件内容如图。7.6.2StreamWriter类3.StreamWriter类常用的属性7.6.3实例:文件复制掌握实例:文件复制,能够通过综合案例演示StreamReader类和StreamWriter类的操作。学习目标前面学习了StreamReader类和StreamWriter类,为了让初学者更好地掌握这两个类的用法,下面通过一个综合案例(文件复制)演示这两个类的综合应用。7.6.3实例:文件复制Path类7.7掌握Path类的用法,能够使用Path类获取文件路径信息,以及操作文件路径。学习目标7.7Path类在程序中经常会对文件的路径进行操作,例如获取文件的扩展名、获取文件或文件夹的路径等,为了实现这些操作,C#提供了Path类。Path类是一个静态类,它提供了一系列用于对文件路径进行操作的方法,常用的方法如表。方法说明stringCombine(paramsstring[]paths)将多个路径字符串组合成一个完整的路径。它会自动添加或删除必要的分隔符以保持路径格式正确stringGetDirectoryName(stringpath)返回指定路径字符串的目录信息stringGetExtension(stringpath)返回指定路径字符串的扩展名stringGetFileName(stringpath)返回指定路径字符串的文件名和扩展名7.7Path类方法说明stringGetFullPath(stringpath)返回指定路径字符串的绝对路径boolHasExtension(stringpath)检查路径是否有文件扩展名,有则返回true,无则返回falsestringGetPathRoot(stringpath)获取指定路径的根目录信息stringGetTempPath()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天津医科大学临床医学院《公共政策分析》2024-2025学年第二学期期末试卷
- 机关内部值班制度
- 机关内部民主管理制度
- 机关内部餐厅管理制度
- 枣庄科技职业学院《国际技术贸易》2024-2025学年第二学期期末试卷
- 林业局内部管理制度汇编
- 某某医院内部审计制度
- 检察院财务内部控制制度
- 检验科内部质量检查制度
- 民宿内部卫生管理制度
- 2026年春统编版小学道德与法治五年级下册教学计划及进度表
- 人大知识竞赛试题及答案
- 2025年中国抑郁障碍防治指南
- 09-幽门螺旋杆菌健康宣教
- 2023年6月新高考天津卷英语试题真题及答案解析(精校打印版)
- 红楼梦林黛玉进贾府原文朗读
- 生命的起源与早期演化课件
- 上海市市西中2024学年高三下学期精英联赛英语试题含解析
- 2023年全国高校体育单招考试英语试卷试题及答案详解1
- 满族文化-大学课件
- GB/T 38119-2019邵氏硬度计的检验
评论
0/150
提交评论