博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
流的概念(来自MSDN)
阅读量:5080 次
发布时间:2019-06-12

本文共 1299 字,大约阅读时间需要 4 分钟。

定义

提供字节序列的一般视图。Provides a generic view of a sequence of bytes.

流涉及三个基本操作

Streams involve three fundamental operations:

  1. 可以读取流(You can read from streams.)。 读取是从流到数据结构(如字节数组)的数据传输。

  2. 可以写入流(You can write to streams.)。 写入是从数据结构到流的数据传输。

  3. 流可以支持查找(Streams can support seeking.)。 查找是对流内的当前位置进行的查询和修改。 查找功能取决于流具有的后备存储区类型。 例如,网络流没有当前位置的统一概念,因此一般不支持查找。

Stream 是所有流的抽象基类。

Stream is the abstract base class of all streams.

流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道或者 TCP/IP 套接字。

A stream is an abstraction of a sequence of bytes, such as a file, an input/output device, an inter-process communication pipe, or a TCP/IP socket.

 Stream 类及其派生类提供这些不同类型的输入和输出的一般视图,使程序员不必了解操作系统和基础设备的具体细节。

根据基础数据源或储存库,流可能只支持这些功能中的一部分。 通过使用 、 和  属性,应用程序可以查询流的功能。

 和  方法读写各种不同格式的数据。 对于支持查找的流,使用  和  方法以及  和  属性可查询和修改流的当前位置和长度。

有些流实现执行基础数据的本地缓冲以提高性能。 对于这样的流, 方法可用于清除所有内部缓冲区并确保将所有数据写入基础数据源或储存库。

在 Stream 调用  可清空任何缓存的数据,从本质上为您调用 Flush。 Close 还释放操作系统资源(如文件句柄、网络连接或用于任何内部缓冲的内存)。 类提供了将一个经过缓冲的流环绕另一个流的功能,以便提高读写性能。

如果需要不带后备存储区(即位存储桶)的流,请使用 。

 

对实现者的说明

在实现 Stream 的派生类时,必须提供  和  方法的实现。 异步方法 、、 和  通过同步方法 Read 和 Write 实现。 同样,Read 和 Write 的实现也将与异步方法一起正常工作。  和  的默认实现创建一个新的单元素字节数组,然后调用 Read 和 Write 的实现。 当从Stream 派生时,如果有内部字节缓冲区,则强烈建议重写这些方法以访问内部缓冲区,这样性能将得到显著提高。 还必须提供、、、、、、 和  的实现。

不要重写  方法,而应将所有 Stream 清理逻辑放入  方法中。 有关更多信息,请参见 。

 

转载于:https://www.cnblogs.com/jumahe/p/4540289.html

你可能感兴趣的文章
PCduino+LAMP(Linux Apache Mysql PHP)配置 web server
查看>>
java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2).
查看>>
[转载(有删改)]单链表
查看>>
在数组中寻找出现次数大于N/K的数
查看>>
217. Contains Duplicate
查看>>
vue2.0 关于Vue实例的生命周期
查看>>
jenkins 更换主数据目录
查看>>
Silverlight中恼人的g.i.cs错误
查看>>
SQLite 数据库增删改查
查看>>
<s:iterator>的status
查看>>
C++入门--1.0输入输出
查看>>
让搭建在Github Pages上的Hexo博客可以被Google搜索到
查看>>
Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十四章:曲面细分阶段...
查看>>
在WPF控件上添加Windows窗口式调整大小行为
查看>>
背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu
查看>>
零元学Expression Blend 4 - Chapter 35 讨厌!!我不想一直重复设定!!『Template Binding』使用前後的差异...
查看>>
HDU2665_Kth number
查看>>
持续集成 Jenkins +Gitlab + SSH 自动发布 HTML 代码
查看>>
二维数组中某列的求和
查看>>
BOM问题
查看>>