C# 数据流

数据流在.NET Framework中扮演着重要角色,用于读写文件操作。Stream类作为所有流的基础,而FileStream类专门处理文件I/O。它可以进行读写、查找操作,并通过Seek方法实现文件的随机访问。本文详细介绍了FileStream类的属性和方法,如OpenOrCreate、ReadWrite权限,并提供了使用FileStream读写文件的示例。
摘要由CSDN通过智能技术生成

44cd6fc6d63722322054849076218101.png

数据流提供了一种向后备存储写入字节和从后备存储读取字节的方式,它是在 .NET Framework 中执行读写文件操作时一种非常重要的介质。下面对数据流进行详细讲解。

01 流程作类介绍

.NET Framework 使用流来支持读取和写入文件,我们可以将流视为一组连续的一维数据,包含开头和结尾,并且其中的游标指示了流中的当前位置。

1.  流操作

流中包含的数据可能来自内存、文件或 TCP/IP 套接字。流包含以下几种可应用于自身的基本操作。

854f32511dcfd51c54a3eec9e77fc336.png  读取:将数据从流传输到数据结构(如字符串或字节数组)中。

4697b1fec2ddfa663c3e338619247b76.png  写入:将数据从数据源传输到流中。

186609d38d06d43ac57bf636a774a7ad.png  查找:查询和修改在流中的位置。

2.  流的类型

在.NET Framework 中,流由 Stream 类来表示,该类构成了所有其他流的抽象类。不能直接创建 Stream 类的实例,但是必须使用它实现其中的一个类。

C#中有许多类型的流,但在处理文件输入/输出(I/O)时,最重要的类型为 FileStream 类,它提供读取和写入文件的方式。在处理文件 I/O 时使用的其他流主要包括BufferedStream、CryptoStream. MemoryStream 和 NetworkStream 等。

02  文件流类  

FileStream 类公开以文件为主的 Stream,它表示在磁盘或网络路径上指向文件的流。一个 FileStream 类的实例实际上代表一个磁盘文件,它通过 Seek 方法进行对文件的随机访问,也同时包含了流的标准输入、 标准输出、标准错误等。FileStream 默认对文件的打开方式是同步的,但它同样很好地支持异步操作。

对文件流的操作。实际上可以将文件看作是电视信号发送塔要发送的一个电视节目(文件),将电视节目转换成模拟数字信号(文件的二进制流),按指定的发送序列发送到指定的接收地点(文件的接收地址)。

说明

FileStream 对象支持使用 Seek 方法对文件进行随机访问。Seek 允许将读取/写入位置移动到文件中的任意位置。

1.  FileStream 类的常用属性

FileStream 类的常用属性及说明如表1  所示。

abb254f82a4694ead35d65414295f352.png

          表1  FileStream 类的常用属性及说明

2.  FileStream 类的常用方法

FileStream 类的常用方法及说明如表2  所示。

bf5bafdd19f0e2782b9fb2b183aaec62.png

         表2  FileStream 类的常用方法及说明

3.  使用 FileSream 类操作文件

要用 FileStream 类操作文件就要先实例化一个 FileStream 对象,FileStream 类的构造函数具有许多不同的重载形式,其中包括了一个最重要的参数,即 FileStream 枚举。

FileMode 枚举规定了如何打开或创建文件,其包括的枚举成员及说明如表3  所示。

58954230405badad4e4435934dec09f5.png

           表3  FileMode 类的枚举成员及说明

例1

下面的代码通过使用 FileStream 类对象打开 Test.txt 文本文件并对其进行读写访问。

FileStream aFlie = new FileStream("Test.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite)

注意

文件要放在程序运行目录下,否则需要给构造函数传递绝对路径。

往期推荐

eca4e3d5bddda8fd868c8e6a9f1a61f3.png

Love life,love yourself

关注小编不迷路呦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值