C#流(Stream)概念

摘要:
流是一个虚拟类。它及其派生类提供了读和写方法,可以支持字节级的读和写数据。因此,除了Stream及其派生类的读写方法之外,Net框架还提供了多种其他支持流读写的类:BinaryReader:从Streams中读取编码字符串和元数据类型;BinaryWriter:将编码字符串和元数据类型写入Streams;StreamReader:使用编码将字符转换为字节,将字符写入Streams;StreamWriter:通过使用编码转换字符和字节,可以直接从Streams中读取字符;

C#流(Stream)概念第1张

流具有如下3种基本操作:

  • 写入:将数据从内存缓冲区传输到外部源;
  • 读取:将数据从外部源传输到内存缓冲区;
  • 查找:重新设置流的当前位置,以便随机读写。但并不是所有的流类型都支持查找,如网络流类没有当前位置的概念,就不支持查找。

Stream是虚拟类,它以及它的派生类都提供了Read和Write方法,可以支持在字节级别上对数据进行读写。Read方法从当前字节流读取字节放至内存缓冲区,Write方法把内存缓冲区的字节写入当前流中。


封装的其他流类

但仅支持字节级别的数据处理会给开发人员带来不便。将定应用程序需要将字符数据写入到流中,则需要先将字符数据转化为字节数组之后才能调用Write方法写入流。因此,除了Stream及其派生类的读写方法之外,.Net框架同样提供了其他多种支持流读写的类:

    • BinaryReader:从Streams读取编码的字符串和基元数据类型;
    • BinaryWriter:向Streams写入编码的字符串和基元数据类型;
    • StreamReader:通过使用Encoding将字符转换为字节,向Streams写入字符;
    • StreamWriter:通过使用Encoding进行字符和字节的转换,可直接从Streams中读取字符;

免责声明:文章转载自《C#流(Stream)概念》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇gitlab使用个人版v16.11Oracle 异常处理汇总下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

IAR for STM8的简介、下载、安装及注册教程

就个人而言,IARforSTM8与Keil没有太大区别。只要您熟悉Keil的用法,就不难开始使用IARforSTM8。互联网上也有许多相关信息。您可以从我的百度云下载IARforSTM8并注册机器!!!链接:https://pan.baidu.com/s/16UHwCZkgONEeLwiwBawAhg提取代码:gvj9 II。下载IARforSTM8软件1....

MIPS学习笔记(一)

本章涉及MIPS变量声明、数据输入和输出、地址获取、分支跳转语句,基本上对应于任何高级语言的最基本操作。该信息的确切形式因汇编程序而异。在MIPS程序集中,标签是后跟冒号的符号名称。)syscall程序的结尾与C类似,可以调用exit函数来停止程序的执行。停止MIPS程序的一种方法是使用类似于在C中调用exit的方法。MIPS中有一个移动指令,它将一个寄存器...

怎么使用vscode合并分支

1.切换分支到本地开发2.代码完成后提交代码到本地仓库3.切换分支到需要merge的test分支先pull一下,之后再合并分支—我开发的是这个feature,就合并这个分支4.当合并分支后,需要重新提交到远程:点击一下,直接提交...

关于WINFORM中输入法的设置

关于WINFORM(转移到)John Suna的专栏开发中输入方法的设置,它碰巧遇到了这种问题。网络真的很好:)这是文本集。感谢作者的辛勤工作给您带来的便利。在WINFORM中,我们经常遇到这样的问题:文本输入框中的输入法被禁用或总是更改为全宽输入法。查阅相关数据后,总结如下:(1)Control.ImeMode属性:获取或设置控件的输入方法编辑器模式。此模...

电脑不识别USB blaster驱动问题

电脑不识别USB blaster,如下图: 解决办法:手动更新...

(转)JavaScript-性能优化之函数节流(throttle)与函数去抖(debounce)

简单来说,JavaScript性能优化的函数节流和函数去抖动功能节流就是使函数在极短的时间间隔内无法连续调用。下一个函数调用只能在上次函数执行超过指定的时间间隔后进行。对于这两个需求,有两种解决方案:去抖动和节流。Throwle和debouck是解决请求和响应速度不匹配问题的两种解决方案。抛出以相等的间隔执行函数。如果事件在反跳时间间隔t内再次触发,则将再次...