




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章C#.NET中的文件处理——文件IO11.1文件的使用11.2使用文件流读写文件11.3小结11.1文件的使用11.1.1File类File类的功能是操作文件。
C#中,命名空间System.IO中提供的File类是一个密封类,它的所有方法都是静态的,不需创建实例即可直接调用。File类支持对文件的基本操作,包括创建、复制、移动、删除和打开一个文件。常用方法:AppendText、Create、Open、Delete、CreateText、Copy、GetCreationTime、GetLastaccessTime、Move、OpenRead、OpenText、OpenWrite、Exists、Replace、GetAttributes、SetAttributes11.1.1File类Create方法,用于创建或覆盖文件,其语法形式如下:
publicstaticFileStreamCreate(stringpath);Open方法:用于打开文件,其语法形式如下:
publicstaticFileStreamOpen(stringpath,FileModemode);publicstaticFileStreamOpen(stringpath,FileModemode,FileAccessaccess);11.1.1File类Delete方法:用于删除文件,如果指定的文件不存在,则引发异常,其语法形式如下:
publicstaticvoidDelete(stringpath);Copy方法:用于行文件复制,其语法形式如下:
publicstaticvoidCopy(stringsourceFileName,stringdestFileName);publicstaticvoidCopy(stringsourceFileName,stringdestFileName,booloverwrite);11.1.1File类示例:
staticvoidMain(string[]args){stringpath=@"d:\temp\text.txt";stringpath2=@"d:\temp\text1.txt";try{File.Delete(path2);File.Copy(path,path2);Console.WriteLine("{0}复制到{1}",path,path2);}catch(Exceptione){Console.WriteLine(e.ToString());}Console.Read();}FileInfo类FileInfo类与File类均能完成对文件的操作,不同点在于FileInfo类必须被实例化,并且每个FileInfo类的实例必须对应于系统中一个实际存在的文件。FileInfo类构造函数的语法形式如下:publicFileInfo(stringpath);示例:FileInfofi=NewFileInfo(@"c:/temp");11.1.2Directory类
Directory类对目录进行操作。在VisualC#中,命名空间System.IO中提供的Directory类是一个密封类,它的所有方法都是静态的,不需创建实例即可直接调用。常用方法:CreateDirectory、Delete、Move、GetFiles、GetCreationTime、GetCurrentDirectory、GetDirectories、GetFileSystemEntries、GetLastAccessTime、GetLastWriteTime、GetParent、Exists、SetCurrentDirectory、SetLastAccessTime、SetLastWriteTime、GetLogicalDrives。11.1.2Directory类
CreateDirectory方法:用于创建目录,如果指定的目录不存在,系统会按path指定的路径创建所有目录和子目录,其语法形式如下:
publicstaticDirectoryInfoCreateDirectory(stringpath);示例:
Directory.CreateDirectory("c:\\test");Directory.CreateDirectory("c:\\test\\t1\\t2");11.1.2Directory类
Move方法:用于将文件或目录及其内容移动到新目录,其语法形式如下:
PublicstaticvoidMove(stringsourceDirName,stringdestDirName);GetFiles方法:用于返回指定目录下文件的名称,并以字符串数组的形式返回,其语法形式如下:publicstaticstring[]GetFiles(stringpath);publicstaticstring[]GetFiles(stringpath,stringsearchPatttern);11.1.2Directory类示例:创建并删除指定目录staticvoidMain(string[]args){stringpath=@"d:\MyDir";if(Directory.Exists(path)){Console.WriteLine("目录已存在");return;}Directory.CreateDirectory(path);Console.WriteLine("成功创建目录:{0}",Directory.GetCreationTime(path));Console.Read();}DirectoryInfo类Directory类和DirectoryInfo类,这两个类均可用于对磁盘和目录进行管理操作。DirectoryInfo类与Directory类的不同点在于DirectoryInfo类必须被实例化后才能使用,而Directory类则只能提供静态的方法。DiectoryInfo类构造函数的语法形式如下:
publicDirectoryInfo(stringpath);其中,参数path表示目录路径。11.2使用文件流读写文件11.2.1流概述流提供了一种向后备存储写入字节以及从后备存储读取字节的方式。后备存储为文件、网络和内存。对应不同后备存储有不同的流,包括文件流、内存流和网络流。11.2.1流概述
常见System.IO命名空间中的常用类11.2.1流概述StreamReader类、StreamWriter类、BinaryReader类和BinaryWriter类虽然非继承自Stream类,它们也负责读取文件,称为流读取器和流写入器,它们与Stream类的区别如下。从System.IO.Stream继承的类可以进行字节输入和输出。BinaryReader类和BinaryWriter类以二进制形式进行基本类型数据流的读取和写入,StreamReader类和StreamWriter类是实现读取和写入字符方法的抽象类。实际上,通常不需要直接和FileStream类型的成员交互,而是使用各种Stream包装类,例如StreamReader类、StreamWriter类、BinaryReader类和BinaryWriter类,它们能更方便地处理文本数据和.NET基本数据类型。11.2.2FileStream类常用属性:CanRead、CanSeek、CanWrite、Length、Position常用方法:Read、ReadByte、Write、
WriteByte、Seek、Flush、Close构造函数:publicFileStream(stringpath,FileModemode);publicFileStream(stringpath,FileModemode,FileAccessaccess);11.2.2FileStream类Read方法:用于由文件流中读取数据并保存到字节数组array中,其语法形式:publicoverrideintRead(byte[]array,intoffest,intcount);ReadByte方法:用于由文件流中读取一个字节的数据,并将读取位置提升一个字节,其返回值为读取的字节转换为int类型的值,如果从流的末尾读取,则返回值为-1。其语法形式如下:publicoverrideintReadByte();11.2.2FileStream类Write方法:把字节数组array中的数据写入到文件流中,其语法形式如下:publicoverridevoidWrite(byte[]arry,intoffest,intcount);WriteByte方法:用于向文件流中写入一个字节,其语法形式如下:
publicoverridevoidWriteByte(bytevalue);Seek方法:用于将文件流的当前位置设置为给定值,其语法形式如下:
publicoverridelongSeek(longoffest,SeekOriginorigin);11.2.2FileStream类Flush方法:用于将保存在缓冲区中的所有数据真正写入到文件中,其语法形式如下:publicoverridevoidFlush();Close方法:关闭文件流并释放与当前文件流关联的全部资源,其语法形式如下:publicoverridevoidClose();11.2.3StreamWriter类和StreamReader类与FileStream类中的Read方法和Write方法相比,这两个类的应用更为广泛且简单,因为StreamWriter类和StreamReader类按字符操作文件流,而FileStream类使用字节操作文件流。StreamWriter类常用属性:AutoFlush、BaseStreamStreamWriter类常用方法:Write、WriteLine、Close、Flush11.2.3StreamWriter类和StreamReader类示例:
FileStreamMyFile=newFileStream("D:\\example.txt",FileMode.OpenOrCreate,
FileAccess.Write);StreamWriterMyStreamWriter=newStreamWriter((Stream)MyFile,System.Text.
Encoding.Unicode);MyStreamWriter.Write(“你好”);MyStreamWriter.Flush();MyStreamWriter.Close();11.2.3StreamWriter类和StreamReader类StreamReader类常用方法:Read、ReadLine、Peek示例:
stringMyText="";StreamReaderMySf=newStreamReader("D:\\example.txt",System.Text.Encoding.
Unicode);MySf.BaseStream.Seek(0,SeekOrigin.Begin);while(MySf.Peek()!=-1){MyText=MySf.ReadLine();MyText=MyText+"\r"+"\n";}MySf.Close();11.2.4BinaryWrite类和BinaryReader类BinaryWriter类的作用是以二进制形式将基本数据类型的数据写入到流中。BinaryReader类的作用是用特定的编码从流中读取二进制数据并存放到基本数据类型的变量或数组中。BinaryWriter类的主要方法:Seek、Write。BinaryReader类的主要方法:ReadBytes、Readchars11.2.4BinaryWrite类和BinaryReader类BinaryWriter类的主要方法:Seek方法:用与设置流的当前位置。publicvirtuallongSeek(int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国螺旋埋弧焊管行业发展状况及营销战略研究报告
- 2025-2030年中国营养煲行业运行动态分析与营销策略研究报告
- 2025-2030年中国花椒大料行业运营状况及发展前景分析报告
- 2025-2030年中国膦酸脲行业运行状况与前景趋势分析报告
- 2025-2030年中国胶合板行业十三五规划及发展盈利分析报告
- 2025-2030年中国聚丁烯管行业现状调研及发展潜力分析报告
- 2025-2030年中国纸杯机行业运行状况及前景趋势分析报告
- 2025-2030年中国粽子行业十三五规划及发展盈利分析报告
- 2025江西省建筑安全员-B证考试题库附答案
- 珠海科技学院《边缘计算》2023-2024学年第二学期期末试卷
- 4.2依法履行义务 教案 -2024-2025学年统编版道德与法治八年级下册
- 公司安全事故隐患内部举报、报告奖励制度
- 云停车平台商户使用说明
- 医院医保月结算报表
- 中国农业银行资金证明模板
- 教师如何做小课题研究(李海波)
- 确认民族成分申请书
- 航空煤油 MSDS 安全技术说明书
- GB38995-2020婴幼儿用奶瓶和奶嘴
- 中职《普通话》课程标准(共7页)
- 修订韦氏记忆量表(WMS-乙式).doc
评论
0/150
提交评论