




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.net课程系列C#高级编程.NET方向
第二学期课程第五章文件和流Newture新程教育System.IO命名空间文件和文件夹文件读写本章目录在.NETFramework中,System.IO命名空间包含允许读写文件和数据流的类型以及提供基本文件和目录支持的类型。System.IO命名空间的多数类型主要用于编程操作物理目录和文件,而另一些类型则提供了从字符串缓冲到内存区域缓冲中读写数据的方法。System.IO命名空间System.IO命名空间System.IO命名空间主要类及说明:FileSystemInfo:表示任何文件系统对象的基类Directory:提供用于文件夹操作的静态方法DirectoryInfo:提供用于文件夹操作的实例方法File:提供对文件操作的静态方法FileInfo:提供对文件操作的实例方法Path:这个类包含的静态成员可以用于处理路径名DriveInfo:它的属性和方法提供对指定驱动器的信息System.IO命名空间Directory类和File类:只包含静态方法,不能被实例化。只要调用一个成员方法,提供合适文件系统的路径,就可以使用这些类。如果只对文件夹或文件执行一个操作,使用这些类就很有效,因为这样可以省去实例化的系统开销。DirectoryInfo类和FileInfo类:实现与Directory类和File类大致相同的公共方法,并拥有一些公共属性和构造函数,使用时需要实例化这些类,之后把每个实例与特定的文件夹和文件关联起来。如果使用同一个对象执行多个操作,使用这些类比较有效。因为在构造时他们将读取合适文件系统对象的身份信息和其他信息,无论对每个对象调用了多少方法,都不需要再次读取这些信息。文件和文件夹文件和文件夹类的属性:CreationTime:创建文件或文件夹的时间DirectoryName(仅用于FileInfo):包含文件夹的完整路径Parent(仅用于DirectoryInfo):指定子目录的父目录Exists:确实指定的文件是否存在Extension:文件的扩展名,对于文件夹返回空白FullName:文件或文件夹的完整路径名LastAccessTime:最后一次访问文件或文件夹的时间LastWriteTime:最后一次修改文件或文件夹的时间Name:文件或文件夹的名称Length
(仅用于FileInfo):返回文件的大小,单位byte文件和文件夹文件和文件夹类的方法:Create():创建给定名称的文件夹或空文件Delete():删除文件或文件夹MoveTo():移动或重命名文件或文件夹CopyTo():(仅用于FileInfo)复制文件GetDirectories():(仅用于DirectoryInfo)获取所有子文件夹GetFiles():(仅用于DirectoryInfo)获取文件夹中所有文件GetFileSystemInfos():(仅用于DirectoryInfo)获取所有文件和文件夹对象文件和文件夹独立实践:文件和文件夹File类详解:创建文件:File.Create(stringpath)打开文件:File.Open(String,FileMode)File.Open(String,FileMode,FileAccess)File.Open(String,FileMode,FileAccess,FileShare)文件和目录//在指定目录创建一个文件,返回一个FileStream对象FileStreamfs=File.Create("D:\\test.txt");fs.Close();FileMode枚举:指定操作系统打开文件的方式CreateNew:指定操作系统应创建新文件,如果文件已存在,则将引发IOException。Create
:指定操作系统应创建新文件。如果文件已存在,它将被覆盖。Open
:指定操作系统应打开现有文件,如果该文件不存在,则引发FileNotFoundException。OpenOrCreate:指定操作系统应打开文件(如果文件存在);否则,应创建新文件。Truncate
:指定操作系统应打开现有文件。文件一旦打开,就将被截断为零字节大小。Append
:若存在文件,则打开该文件并查找到文件尾,或者创建一个新文件。文件和目录FileAccess枚举:用于控制对文件的访问方式Read
:对文件的读访问
Write
:文件的写访问
ReadWrite
:对文件的读访问和写访问
FileShare枚举:包含用于控制其他FileStream对象对同一文件可以具有的访问类型的常数None:谢绝共享当前文件Read
:只读Write
:只写ReadWrite:读写Delete
:删除Inheritable
:使文件句柄可由子进程继承文件和目录打开文件:文件和目录staticvoidMain(string[]args)
{FileStreamfs=File.Open("D:\\test.txt",FileMode.Append);stringstr="HelloWorld";char[]arrayChar=str.ToCharArray();byte[]arrayByte=newbyte[arrayChar.Length];for(inti=0;i<arrayChar.Length;i++){arrayByte[i]=(byte)arrayChar[i];}fs.Write(arrayByte,0,arrayByte.Length);fs.Close();
}文件和目录staticvoidMain(string[]args)
{
File.Copy(“D:\\test.txt”,“D:\\Mytest.txt”,);//复制文件 //复制文件,如果同名是否覆盖
File.Copy(“D:\\test.txt”,“D:\\Mytest.txt”,true); File.Delete(“D:\\test.txt”);//删除文件
File.Move(“D:\\test.txt”,“E:\\Mytest.txt”);//移动文件 //设置文件属性 File.SetAttributes("D:\\test.txt",FileAttributes.ReadOnly);
if(!File.Exists(("D:\\test.txt",)){ Console.WriteLine(“文件不存在");}}遍历文件夹下所有文件:文件和目录voidForeachDirectory(stringpath){
foreach(stringiteminDirectory.GetDirectories(path))
{ForeachDirectory(item);
//递归
}
foreach(variteminDirectory.GetFiles(path))
{Console.WriteLine(item);
}}文件(file)是一些具有永久存储及特定顺序的字节组成的一个有序的、具有名称的集合。它是一种进行数据读写操作的基本对象。通常情况下文件按照树状目录进行组织,每个文件都有文件名、文件所在路径、创建时间、访问权限等属性。流(stream)是.NET操作文件的基本类,对文件的输入和输出操作都要用到流,数据传输有两个方向:读取流:数据从外部源传输到程序中写入流:数据从程序传输到外部源文件读写在System.IO命名空间中,与流相关的类层次结构图:文件读写Stream:是一个抽象类,支持对字节的读写操作,所有其它的流都必须从Stream中继承:FileStream(文件流):使用
FileStream
类对文件系统上的文件进行读取、写入、打开和关闭操作,特点是操作字节和字节数组。MemoryStream(内存流):用于在内存中读取和写入数据。BufferedStream(缓存流):为其他I/O流的读写操作提供一个内部的缓冲区。使用缓冲区可以减少对操作系统的操作,提高I/O操作性能。流涉及三个基本操作:读操作写操作搜索操作文件读写System.IO命名空中还提供了不同的读写器来对流中的数据进行操作,这些通常成对出现,一些用于读一些用于写,不同类型的读写器分别处理文本、流、字符串和二进制数据。这些读写器如下:TextReader/
TextWriter:文本数据和字符串读写器StringReader/
StringWriter:字符串读写器BinaryReader/
BinaryWriter:二进制数据读写器StreamReader/StreamWriter:流读写器文件读写FileStream(文件流):FileStream类的构造函数:FileStream(string,FileMode)FileStream(string,FileMode,FileAccess)FileStream(string,FileMode,FileAccess,FileShare)FileStream有很多的方法进行读写:ReadByte():从流中读取一个字节,把结果转换为0-255之间的一个整数。如果到达流的末尾,就返回-1。Read():可以把特定数量的字节流读入到一个数组中,返回实际读取的字节数。WriteByte():把一个字节写入流Write():把一个字节数组写入流文件读写文件读写FileStreamfs=newFileStream("D:\\Mytest.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite);stringstr="喜欢你";char[]c=newchar[100];c=str.ToCharArray();//将字符串转换为字符数组byte[]b=newbyte[100];Encodered=Encoding.UTF8.GetEncoder();//编码ed.GetBytes(c,0,c.Length,b,0,true);//字符数组通过编码转换为字节数组fs.Write(b,0,b.Length);//写入文件fs.Seek(0,SeekOrigin.Begin);//将文件流定位到文件开始处byte[]by=newbyte[100];char[]ch=newchar[100];fs.Read(by,0,100);//读取文件Decoderde=Encoding.UTF8.GetDecoder();de.GetChars(by,0,by.Length,ch,0);//字节数组通过编码转换为字符数组fs.Close();//关闭流对象Console.WriteLine(ch);独立实践:将图片以二进制的方式存入数据库,加载窗体的时候从数据库取出二进制数据,还原成图片显示出来。文件读写StreamWriter(流写入器):用来写文本文件Write():将字符串写入流WriteLine():将行结束符写入文本流文件读写publicstaticvoidMain(String[]args){if(!File.Exists(“MyFile.txt”)){Console.WriteLine(“{0}不存在.",FILE_NAME);return;}
using(StreamWritersw=newStreamWriter(FILE_NAME)){sw.WriteLine(“我喜欢你!");sw.WriteLine(“我爱你!");sw.WriteLine(“我们结婚吧!");
}}StreamReader(流读取器):用于读文本文件ReadLine():一次读取一行Read():读取输入流中的下一个字符并使该字符的位置提升一个字符,如果达到
温馨提示
- 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年数位式功率表项目可行性研究报告
- 证券客户经理述职报告
- 银行现金柜员工作总结
- 餐厅长期承包经营合同
- 2024-2025学年七年级下册历史 【教学课件】第10课《金与南宋的对峙》
- 滁州地铁笔试试题及答案
- 八年级英语下学期期中模拟卷(上海专用)-2024-2025学年(牛津上海版)
- 小学课本剧一年级《雪孩子》-剧本
- 会计毕业论文范文:大数据时代的会计变革
- GB/T 24628-2025医疗保健产品灭菌生物与化学指示物测试设备
- 2025-2030年中国太阳能供热项目可行性研究报告
- DLT-596-1996-电力设备预防性试验规程
- Unit 4 Healthy food Part A Lets spell(说课稿)-2024-2025学年人教PEP版(2024)英语三年级下册001
- 2025年度智慧城市建设项目承包申请书范例4篇
- 2024年09月江苏2024年东台农商银行校园招考笔试历年参考题库附带答案详解
评论
0/150
提交评论