虽然首选的数据访问是通过一个后台数据库或者XML方式,但你却很少有机会来选择数据访问的方式。一般而言,公司中必然会富于大量遗产数据 (Legacy data),所以你必须能够访问各种不同的数据源。文本文件就是其中一个普通的方式。.NET类中的长数组以System.IO空间名称的方式提供了需要的功能。现在让我们详细查看如何使用这一空间名称来访问文件内容。
流(Streams)
.NET框架使用流来处理各种输入类型。一个流代表着输入或者输出到一个数据源的数据流动,数据源即为一个流的后端(文件,Socket等)。
System.IO空间名称包含抽象的基本Stream类。这一类定义了以字节方式读取或写入原始数据的操作。你无需处理原始数据,但你必须处理建立的存储格式,如文件或者网络Sockets。
System.IO空间名称包括很多类,这些类能够将Stream类扩展为处理各种不同的存储方法。这些类包括以下:
# Directory:提供了处理与路径有关的方法,比如建立,复制,移动,以及删除。
# File:提供了处理与文件操作有关的方法,比如建立,建立,移动,以及删除。
# FileStream:提供了同步和异步的文件操作。
# MemoryStream:处理内存中存储的数据。
# StringReader:访问与string有关的数据(使用TextReader类)。
# StringWriter:建立与string有关的数据(使用TextWriter类)。
# TextReader:用于读取一个顺序字符。
# TextWriter:用于写入一个顺序字符。
以上为System.IO空间名称的例子,你可以看到蕴藏的灵活性。这些类的一个不足之处是,一个流作为前台方式服务于其它一个类,这就有可能在第一个流上执行多余的处理。和文件操作一样,这些方法被应用于加密或者缓冲等处理。
既然我们已经建立.NET流的基本知识,现在让我们更深入学习使用流来处理数据文件。
