VB.NET程序设计-第10章 文件读写与管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.BinaryReader类 (1) BinaryReader类的New方法
New方法重载
功能说明
ms.msdnqtr.v80.chs/MS.MSDN
.v80/MS.NETDEVFX.v20.chs/c pref8/html/C_System_IO_Str
基于所提供的流,用 UTF8Encoding 初始化 BinaryReader 类的新实例。
(m2s.)msdnSqttr.rv8e0.achms/WMSr.MiSDtN.ev r类写文件的方法 80/MS.NETDEVFX.v20.chs/cpref 用指定的编码及默认缓冲区大小,为指定的流初始化 StreamWriter 类的新实例
8/html/C_Sys方te法m_IO_StreamRea 。
(3) 读取方法
方法
Read Read(buffer, index,
count) ReadLine ReadToEnd
功能说明
读取输入流中的下一个字符。 从 index 开始,从当前流中将最多的 count 个字符读入 buffer。 从当前流中读取一行字符并将数据作为字符串返回。 从流的当前位置到末尾读取流。
ReadDouble
从当前流中读取 8 字节浮点值,并使流的当前位置提升 8 个字节。
(2)BinaryReader类的常用方法
方法
功能说明
ReadInt16
从当前流中读取 2 字节有符号整数,并使流的当前位置提升 2 个字节。
ReadInt32
从当前流中读取 4 字节有符号整数,并使流的当前位置提升 4 个字节。
DirectoryInfo
提供用于创建、移动和遍历目录和子目录的实例方法。无法继承此类。
10.2 文件的读写操作
10.2.1 文本文件的读写操作
StreamReader 类 和 StreamWriter 类 分 别 以 流 的 方 式 读写文本文件,读写时可以指定字符的特定编码。默认编 码为 UTF-8,而不是本地系统的 ANSI 编码。UTF-8 可以 正确处理 Unicode 字符并在各主机的操作系统中提供一 致的结果。读写文本文件的基本步骤为:
二进制文件是把内存中的数据按照原样保存在外部存储器上,可以 直接读取或修改二进制文件中的任意字节。
10.1.2 访问文件的方式
在VB.NET中,有3种访问文件的方法,分别是:使用VB传统语句和函 数直接访问文件;通过文件系统对象模型(FSO)访问文件;使用.NET的Sys tem.IO模型访问文件。用户最常用的是第三种,所以本章主要介绍使用.NET 的System.IO模型访问文件。
功能说明
der(_ScttrWoerrai_mt1,e_(6E参bn1c数bo5d)6i5neg.)htm
将参数中指定数据写入文件
WriteLine(参数)
将参数中指定数据后跟换行符写入文件
ms.msdnqtr.v80.chs/MS.MSDN.v
注例880//hd意如MteSmr.l_:下N/cECtT_o面WDSrEyr_Vs1几iFt_Xet0.mb种ev_e2I和e0Oa重._5cSW7htf载rsr./eihcat形tpmmrReee式Lfa i。n用e指都定是的编重码载及缓方冲法区大,小它,为们指可定的以流接初始受化各St种rea类mWr型ite的r 类参的数新实,例。 (Stream, EnSctodrienga,mIWnrt3i2t) er.Write(Int32) StreamWriter.Write(Double) StreamWriter.Write(String) StreamWriter.Write(Char[ ])
顺序文件中的数据是一个接一个顺序地存放的,而且只记录第一个 数据的存储位置。 (2) 随机文件
随机文件以“记录”的格式来存储数据,所谓记录,其实就是由一 组相互关联的字段组合成的逻辑单位,它类似于数据库中的记录。 (3) 文本文件
在文本文件中,每个字符作为一个ASCII码或Unicode码存放,占一 个或两个字节。 (4) 二进制文件
ReadChar
从当前流中读取下一个字符,并根据所使用的 Encoding 和从流中读取的特定字符,提升流 的当前位置。
ReadChars
从当前流中读取 count 个字符,以字符数组的形式返回数据,并根据所使用的 Encoding 和从流中读取的特定字符,提升当前位置。
ReadDecimal
从当前流中读取十进制数值,并将该流的当前位置提升十六个字节。

说明
FileStream
以字节流的形式访问文件,既支持同步读写操作,也支持异步读写操作。
StreamReader
从文本文件中读入字符,并且可以定义字符的编码方式,
StreamWriter
向文本文件中写入字符,也可以定义字符的编码方式。
BinaryReader
从二进制文件中读取数据。
BinaryWriter
向二进制文件中写入数据。
File
提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建FileStream对象。
FileInfo
提供创建、复制、删除、移动和打开文件的实例方法,并且帮助创建 FileStream 对象。无法 继承此类。
Directory
提供用于创建、移动和遍历目录和子目录的静态方法。无法继承此类。
象和读取文件的方法 。【例10-1】读取文本文件,将其内 容显示在窗体中。
图10-1 读取文本文件 具体操作步骤和源程序参见教材
(1) New方法 建立StreamReader对象与文件的关联,以及打开数据
流通道,是通过向New方法传递参数完成的。
表10-2 Streaห้องสมุดไป่ตู้Reader类的New方法
( 1 ) 使 用 New 方 法 创 建 StreamReader/StreamWriter 对 象,将它与文本文件关联(打开文件的数据流通道)。
(2)调用对象的成员方法从文件中读写字符 (3)关闭StreamReader/StreamWriter对象和数据流。
1.StreamReader类 StreamReader又称为读取器,它提供了多个用于创建对
(ea2m)ReaBdehirtn_mcat(roSrty_rR1e_ae7ma8)6d4ec1r2类9. 的常用方法
方法
功能说明
ms.msdnqtr.v80.chs/MS.MSDN
.pvr8e0f/8PM/eShRe.tekNmaCEldhT/aDCrE_VSFyXs.tve2m0_.I返已cOh_回重sS/t下载cr 一。基个从于可基所用础提的流供字中的符读流,取和并字特且符定不,的提并字升提符字升编节流码或的,字当初符前始的位化位置置B。i。naryReader 类的新实例。
第10章 文件读写和管理
赵旭
2019年3月20 日
本章学习目标:
□ 了解文件的分类 □ 掌握文本文件和二进制文件的读写技术 □ 掌握文件和文件夹的管理方法
10.1 文件和System.IO模型概述
10.1.1 文件的分类
按文件中的数据格式,可分成“二进制文件”和“文本文件”;按 文件的存取方式,可分成“顺序文件”和“随机文件”。 (1) 顺序文件
指定操作系统应创建新文件。如果文件已存在,它将被改写。如果文件不存在,则使用 CreateNew ;否则使用 Truncate。
指定操作系统应创建新文件。如果文件已存在,则将引发 IOException。
指定操作系统应打开现有文件。打开文件的能力取决于 FileAccess 所指定的值。如果该文件不存 在,则引发 System.IO.FileNotFoundException。
【例10-2】修改例10-1,用其它 方法读取文件。 设计界面如图10-2,点击第一个 按钮,通过循环从文件中一个一 个读取字符,直到文件结尾,Str eamReader类中有一个只读属性En dOfStream,其值为true表示已到 文件结尾,其值为false表示未到 结尾。点击第二个按钮,读取文 件的前10个字符到Char型数组。 点击第三个按钮,通过循环一行 一行读取字符,直到结尾。
eamReader_ctor_1_6b1b565e.
hRtemad(BSotorleeaamn, ncodin从g)当前流中读取 Boolean 值,并使该流的当前位置提升 1 个字节。
ReadByte
从当前流中读取下一个字节,并使流的当前位置提升 1 个字节。
ReadBytes
从当前流中将 count 个字节读入字节数组,并使当前位置提升 count 个字节。
图10-2 读取文本文件
2.StreamWriter类 StreamWriter又称为写入器,用于向文本文件中写入字符,
也可以指定字符的编码方式。 (1) StreamWriter类的New方法
New方法重载 StreamWriter (String)
功能说明
使用默认编码(UTF-8)和缓冲区大小,为指定文件名初始化 StreamWriter 类的 新实例。
ms.msdnqtr.v80.chs/MS.MSDN.v 80/MS.NETDEVFX.v20.chs/cpref 8/html/C_System_IO_StreamRea
der_ctor_1_7864c129.htm (Stream)
用默认编码(UTF-8)及默认缓冲区大小,为指定的流初始化 StreamWriter 类的 一个新实例。
10.1.3 System.IO模型概述
System.IO实际上是一个文件操作的类库,这些类提供了多种对文件的
读写方法,以及对文件和文件夹的管理方法,这些类被声明在System.IO命
名空间中,要使用这些类,必须引入该命名空间,其中常用的类及其功能如
表10-1所示。
表10-1 System.IO模型中常用的类
【例10-3】设计窗体如图10-3,将左边文本框的数据写入文 件D:\VS\Chapter10\文本文件2.txt中,在右边文本框中显示 文件的内容。
图10-3 写入文本文件 具体操作步骤和源程序参见教材
10.2.2 二进制文件的读写操作
二进制文件通常扩展名为“dat”,一般利用BinaryReader类从二进制文件 中读取数据,利用BinaryWriter类向二进制文件中写入数据。

Append
Create CreateNew
Open OpenOrCreate
Truncate
表10-3 FileMode值及其说明
功能说明
打开现有文件并查找到文件尾,或创建新文件。FileMode.Append 只能同 FileAccess.Write 一起 使用。任何读尝试都将失败并引发 ArgumentException。
New方法重载
StreamReader (String)
StreamReader (String, Encoding)
StreamReader (Stream)
StreamReader (Stream, Encoding)
功能说明
以指定的文件名初始化 StreamReader 类的新实例。 以指定的文件名和字符编码初始化 StreamReader 类的一个 新实例。 以指定的流初始化 StreamReader 类的新实例。
以指定的流和字符编码初始化 StreamReader 类的新实例。
注意:调用New方法而不指定字符编码,则程序采用默认 的UTF-8编码读取文件。
(2) FileStream类 FileStream类用于创建指向某个文件的流对象,基本的书写形式为: Dim fs as New FileStream( “D:\VS\Chapter10\文本文件.txt", FileMode.Op en, FileAccess.ReadWrite ) 第一个参数为文件全路径名。第二个参数为FileMode枚举类型值,用于指定访问 文件的模式,第三个参数为FileAccess枚举类型值,用于指定访问文件的权限
指定操作系统应打开文件(如果文件存在);否则,应创建新文件。
指定操作系统应打开现有文件。文件一旦打开,就将被截断为零字节大小。
方法 Read ReadWrite Write
表10-4 FileAccess值及其说明 功能说明
对文件的读访问。可从文件中读取数据。 对文件的读访问和写访问。可从文件读取数据和将数据写入文件。 文件的写访问。可将数据写入文件。
相关文档
最新文档