IO数据流技术
在变量,对象,数组中存储的数据都是暂时的,程序就会丢失,为了能长时间保存,将程序中的数据保持在磁盘文件中。C#中IO技术可以将数据保存到文件(如文本中),以达到长时间保存数据的目的IO可以提高对数据的处理能力
文件操作
对文件的操作大体可以分为,判断文件是否存在,创建文件,复制和移动文件,删除文件以及获取文件的基本信息。
使用文件,文件夹,及流相关类时,首先需要添加System.IO命名空间
File类
File类支持对文件的操作,包括创建,复制,删除,移动和打开文件的静态方法,并协助创建FileStream对象 ,Flie类中有40多种方法。
FileInfo类
许多方法与File类相同,但FileInfo没有静态方法,该类中的方法仅可用于实例化的对象。
File类和FileInfo类使用场景
File类是静态类,其调用需要参数为每一个方法规定文件位置,在需要对象调用一个方法时,可以使用静态File类。这种情况静态调用更快,不必执行实例化新对象。
如果要在文件是执行多种操作,则实例化FileInfo对象更好一些,可以提高效率,因为对象将在系统文件上引用正确的文件,而静态类却每一次都寻找文件。
判断文件是否存在:
Exists File类直接调用 FileInfo类需要创建对象
创建文件
Create File类直接调用 FileInfo类需要创建对象
复制文件
File类 copy FileInfo类 copyTo
移动文件
File类 Move方法 FileInfo类 MoveTo方法
删除文件
File类 Delete FileInfo类 Delete
获取文件的基本信息
使用FileInfo中的各种属性可以获取文本的基本信息。Demo-IOwindows
文件夹基本操作
对文件夹的操作可以分为,文件夹是否存在,创建文件夹,移动文件夹,删除文件夹,以及遍历文件夹中的文件。
Directory类公开了用于创建,移动,枚举,删除目录和子目录的静态方法。
DirectoryInfo类和Directory类的区别与File类和FileInfo类的区别是一样的
判断文件夹是否存在,
Exists Directory类直接调用 DirectoryInfo类需要创建对象
创建文件夹
Directory类 CreateDirectory方法 DirectoryInfo类 Create方法
移动文件夹
使用Move方法需要统一磁盘目录
Directory类 Move DirectoryInfo类 MoveTo
删除文件夹
Directory类 Delete DirectoryInfo类 Delete
遍历文件夹
一般只使用DirectoryInfo类中的GetFileSysteminfos方法,返回的是一个FileSystemInfo对象的数组
提供了GetDirectories方法,GetFiles方法,GetFileSysteminfos方法
GetDirectories遍历文件夹中的子文件夹
GetFiles遍历文件夹中的文件
GetFileSysteminfos遍历文件夹中所有子文件夹和文件
IO输入输出
输入与输出设备之间的数据传递抽象为流,
根据操作单元分类:分为字节流(操作单元一个字节),字符流(操作的数据单元是两个字节或一个字符,因为一个字符占两个字节)
根据流的流向分类:分为输入流和输出流,输入是指数据从数据源(文件,压缩包,视频)流向内存,输出流,指内存流向数据源,输入流读取数据,输出流被用来写入数据
在.net framework流由Stream类表示,该类构成了所有其他流的抽象类,不能直接创建,Stream类的实例,但是必须使用它实现某个I/O流
在C#中有许多类型的流,最重要的类型为,FileStream,它提供了读取和写入文件的方式,在处理文件I/o时,使用其他流主要包括,BufferedStream,CryptoStream,MemoryStream和NetworkStream等
FileStream类
1.常用属性 2.常用方法.3.操作文件
使用IO流操作文本文件
主要用到StreamWriter类和StreamReader
1.StreamWriter,向文本文件中写入字符串
2.StreamReader,读取文件文本的类
什么时候使用输入流,什么时候使用输出流
以内存为参照物
当数据流入内存时,就需要使用输入流
当内存流出到文件时,就需要输出流(将数据打印在显示器上就是输出的一种);
#####