常用类库--IO操作

IO操作

C#将文件视为一个字节序列,以流的方式对文件进行操作。流是字节序列的抽象概念。

文件和流之间既有区别又有联系。

文件是在各种驱动器上(可移动磁盘、硬盘、CD 等)永久或临时存储的数据的有序集合,是进行数据读写操作的基本对象。文件通常具有文件名、所在路径、创建时间、访问权限等基本属性。

流非常类似于单独的磁盘文件,同时也是进行数据读取操作的对象。流提供了连续的字节存储空间,通过流可以向后备存储器写入数据,也可以从后备存储器中读取数据。虽然数据实际的存储位置可以不连续,甚至可以分布在多个磁盘上,但是用户看到的是封装后的数据结构,是连续的字节流。

与IO操作相关的枚举

FileMode,表示文件的打开方式,枚举取值包括:

取值

说明

Append

以追加方式打开文件,如果文件存在则在尾部追加,否则创建一个新文件

Create

创建并打开一个新文件,如果文件已经存在则覆盖旧文件

CreateNew

创建并打开一个新文件,如果文件已经存在则发生异常

Open

打开现有文件,如果文件不存在则发生异常

OpenOrCreate

打开或创建一个文件,如果文件已经存在则打开它,否则创建并打开一个新文件

Truncate

打开现有文件,并清空文件内容

 

SeekOrigin,表示以什么为基准来计算文件流中的偏移量,枚举取值包括:

取值

说明

Begin

从文件流的起始位置计

Current

从文件流的当前位置计

End

从文件流的结束位置计

 

FileAccess,表示对文件的访问权限,枚举取值包括:

取值

说明

Read

对文件拥有读权限

Write

对文件拥有写权限

ReadWrite

对文件同时拥有读写权限

 

FileShare,表示文件的共享方式,枚举取值包括:

取值

说明

None

禁止任何形式的共享

Read

读共享,打开文件后允许其他进程对文件进行读操作

ReadWrite

读写共享,打开文件后允许其他进程对文件进行写操作

Write

写共享,打开文件后允许其他进程对文件进行写操作

 

FileAttributes,表示文件的类型,枚举取值包括:

取值

说明

取值

说明

Archive

存档文件

Compressed

压缩文件

Device

设备文件

Directory

目录

Encrypted

加密文件

Hidden

隐藏文件

Normal

普通文件

NotContentIndexed

无索引文件

Offline

脱机文件

ReadOnly

只读文件

ReparsePoint

重分析文件

SparseFile

稀疏文件

System

系统文件

Temporary

临时文件

 

DriveType,表示驱动器类型,枚举取值包括:

取值

说明

取值

说明

CDRom

CD-ROM驱动器

Fixed

固定磁盘驱动器

NetWork

网络驱动器

NoRootDirectory

不含根目录的驱动器

Ram

RAM闪存驱动器

Removable

可移动存储设备

Unknown

驱动器设备类型未知

 

 

DriveInfo类

用于对驱动器进行操作

 

DirectoryInfo类

用来描述一个文件夹对象。

 

Directory类

用于操作目录类(静态类)。

 

FileInfo类

用来描述一个文件对象。

 

File类

用于操作文件(静态类)。

 

Path类

对文件或目录的路径进行操作的类。

 

Stream类

流是以序列的方式对数据进行操作,因此支持长度和当前位置的概念。Stream支持同步和异步地数据读写。在同步操作中,一个流对象只有一个当前位置,不同的程序或进程都在当前位置进行读写;而在异步操作中,不同的程序或进程可以在不同位置上进行读写,当然这需要文件的共享支持。

FileStream

文件流,对文件进行读写操作

文件流FileStream支持同步和异步文件读写,它还可以使用输入输出缓存以提高性能。

使用完FileStream对象后,一定不要忘记使用Close方法来关闭文件流,否则不仅会使别的程序不能访问该文件,还可能导致文件损坏。

打开文件,同时对该文件创建了读写器,则在关闭时,先关闭StreamWriter才能关闭StreamReader,最后才能关闭文件 

StreamReader

对文本文件的读取

 

StreamWriter

用于对文本文件的写入操作

什么是文本文件?

直接用字符串格式存储。即,使用记事本打开文件时,不会出现乱码。

 

GZipStream

压缩流

posted @ 2014-08-28 20:10  百年一人  阅读(255)  评论(0编辑  收藏  举报