《数据访问 - 第01章 文件 - 文件和流的概念》
1、数据
在软件领域中,数据持久化方式包括:
a)磁盘文件,在C#中使用文件流来进行数据的读写操作
b)数据库,在C#使用ADO.NET来进行数据的读写操作
2、文件
1)文件概念
狭义的理解就是驻留在介质上的某文件夹下的文档,并用一个名称去标识它。
广义的理解则是一组相关数据的有序集合,集合的名称即为文件名,包含设备文件等。
2)文件分类
计算机文件基本上分为二种:
文本文件:基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等
二进制文件:为了与文本文件相区别,常把除了文本文件以外的文件称为二进制文件
备注:
由于计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。文本文件是二进制文件的一个子集。
3、流
1)概念
示例:一般在形容单相思的时候,都有一句成语:“落花有意流水无情” 流过的水是不能回头的,基于此,流的最大概念是单向处理。
计算机对文件的操作时以流的方式进行的,流是内存中的一组有序数据序列。
2)流的基本操作
读取 - 从流中读取数据到变量中
写入 - 把变量中的数据写入到流中
定位 - 重新设置流的当前位置
程序将数据从源(文件、内存、键盘、网络)中读入到内存中,形成了流,然后再将流写至目标(文件、内存、控制台、网络)。
之所以称为流,是因为这个数据序列在不同时刻所对应的是源的不同部分。
4、文件和流的相关类库
在System.IO命名空间内提供了多种类型用于进行数据文件和数据流的读写操作。
<完整的图示见附件01>
1)目标对象
Path、Directory、File、FileSystemInfo(包括:DirectoryInfo、FileInfo)
2)流
Stream(包括:FileStream、MemoryStream、BufferStream等)
3)流对象进行读写
文本模式:Text(StreamReader、StreamWriter、StringReader、StringWriter)
二进制模式:Binary(BinaryReader、BinaryWriter)