文件的操作

来源:互联网 发布:知乎 丁芙妮马上上 编辑:程序博客网 时间:2024/05/29 15:36

01各种关于文件或流的输入输出操作,都需要导入System.IO命名空间。

02File类提供的方法都是静态的,所以不需要实例化就可以直接使用,简化了了程序操作步骤。

03File类提供的常用方法有:

AppendText

创建一个StreamWriter对象,用于在指定文件的末尾添加新的内容,如果指定文件不存在,则自动创建这个文件。

 

Copy

拷贝指定文件。

Copy方法必须带两个参数,第一个参数为源文件所在的路径;第二个参数为目标文件所在的心路径。还可以再带一个Bool类型的可选参数,如果其值为True,表示如果目标文件已经存在,那么新文件可以覆盖原来的文件。

Move

移动指定文件到新的路径。

Copy方法基本一样,但是没有那个Bool型参数。而且重命名也可以通过这个方法实现,只要文件名不同就可以了。意义为先把源文件拷贝到新路径中,然后删除源文件。

Delete

删除指定文件。

带一个参数。

Exists

判断指定的文件是否存在。

 

Open

以指定的方式、权限打开指定文件。

 

OpenRead

以只读的方式打开指定文件。

 

OpenText

创建一个StreamReader对象,用于读取指定文本文件的内容。

这个方法只有一个字符串类型参数,就是需要指定需要读取的文本文件的绝对路径。如果是相对路径,就需要使用Server.MapPath()方法来取得当前目录的绝对路径。它的返回值是一个StreamReader类,接下来的操作就可以利用StreamReader类的操作放来来完成对文本文件的读写。通过SteamReader对象的ReadLine方法,程序就能读取SteamReader中的每一行数据。

OpenWrite

以读写的方式打开指定文件。

 

Create

创建一个指定文件。

 

CreateText

创建一个文本文件。

StreamWriter类的作用便是实现文件写的操作。StreamWriter类有两个写入方法:一个是WriteLine;另一个是Write,二者的区别是前者是每行每行的写入,后者是不按行写入(即每行文本后加有“/n”换行符)。接着使用Flush方法将缓冲区中的数据内容,真正的写入文件中,并用Close()方法关闭StreamWrite对象。为了防止写入文本文件的内容是乱码可以使用System.Text.Encoding.GetEncoding("GB2312")来指定写入内容的编码格式。

04Windows系统中如果输入输出的数据小于64KB,则采用同步模式可以获得比较好的效果,使用的方法是ReadWrite方法;而当输入输出的数据大于64KB时,则采用异步模式,使用的是BeginReadBeginWrite方法。

05FileStream有很多种建立方式,最常见的方式是:

FileStream fs = new FileStream(string OpenFileName, FileMode, FileAccess)

这种方式有三个参数:第一个参数为需要打开的文件名;第二个参数为打开的模式(有六种打开模式:AppendOpenCreateCreateNewOpenOrCreateTruncate);第三个参数为访问权限(有三种访问权限:ReadWriteReadWrite)。

06FileStream提供了很多种有用的方法和属性,常用的有:

CanRead

判断当前流(Stream)是否支持读取操作。

CanWrite

判断当前流是否支持写入的操作。

CanSeek

判断当前流是否支持搜索。

IsAsync

判断当前流是否处于异步打开模式。

Position

获取或设置当前流所处的位置。

Flush

将当前缓冲区的数据写入文件。

Lock

锁定当前流的部分或全部,以防止其他文件访问。

Read

从当前流中读取字节块,然后存入指定的缓冲区。

ReadByte

从文件中读取一个字节,然后将读取位置向前移一个字节。

Seek

设置当前流操作的指针位置。

UnLock

解除锁定。

Write

向当前流写入字节块。

WriteByte

在当前流位置写入一个字节。

这些方法和属性是FileStream常用的,但很多情况下很少使用。在编程时可以将这些方法交给StreamReaderStreamWriterBinaryReaderBinaryWriter这些类来完成操作。

07BinaryReaderBinaryWriter都有一个BaseStream属性,它们用于控制当前文件流的各项操作。通过BaseStreamSeek方法定义操作流的操作指针位置,Seek方法需要两个参数,第一个参数表示指针的定位位置;第二个参数则定义指针定位的相对位置(可以设定三个值:BeginCurrentEnd)。

08DirectoryInfo类和FileInfo类,前者用于获取目录的相关信息,后者用于获取文件的相关信息。

DirectoryInfo常用的属性和方法:

Create方法

创建一个新目录。

CreateSubDirectories方法

创建一个或者多个子目录。

Delete方法

删除一个目录。

Exists属性

判断目录是否存在。

GetDirectories方法

获取当前目录的子目录集合。

GetFiles方法

获取当前目录的文件集合。

GetFileSystemInfos方法

获取当前目录FileSystemInfo(包括目录和文件)集合。

MoveTo方法

将整个目录移到一个新的路径。

Name属性

获取当前目录的目录名。

Parents属性

获取当前目录的父目录名。

Root属性

获取当前目录的根目录。

FileInfo常用的属性和方法有:

CopyTo方法

将一个存在的文件拷贝为一个新文件。

AppendText方法

创建一个StreamWriter对象,用于在文件尾部添加新文本。

Create方法

创建一个新文件。

CreateText方法

创建一个SteamWriter对象,用于创建一个新文本文件。

Delete方法

删除文件。

Exists属性

用于判断文件是否存在。

Length属性

获取文件的大小。

MoveTo方法

将文件移到一个新的路径。

CopyTo方法

将文件拷贝到一个新的路径。

Name属性

获取文件名。

Extension属性

获取文件的扩展名。

FileInfo类与DirectoryInfo类共有的时间属性有:

CreationTime

目录或文件的创建时间。

LastAccessTime

最后一次访问时间。

LastWriteTime

最后一次修改时间。

原创粉丝点击