1. 核心概念
- IO流即输入输出流,以水管为形象类比,用于实现文件、内存、网络等介质的数据读写,基类为 System.IO.Stream (抽象类)。
- 流分为字节流(万能流,读写文本、图片、视频等所有文件)和字符流(仅读写文本文件,按字符操作)。
2. 字节流核心派生类
- FileStream :节点流,直接对接文件,是文件读写的核心类;创建时需指定文件路径、 FileMode (文件打开方式)、 FileAccess (访问权限)、 FileShare (共享权限),注意参数组合合法性,否则会抛异常。
- MemoryStream :内存流,在内存中读写数据。
- BufferedStream :缓冲流,通过缓冲区(byte[]数组)提升 FileStream 的读写性能。
- 其他: NetworkStream (网络流)、 CryptoStream (加密流)、 GZipStream (压缩流)。
3. Stream抽象类核心方法
- 读取: Read(byte[] buffer, int offset, int count) / Read(Span<byte> buffer)
- 写入: Write(byte[] buffer, int offset, int count) / Write(ReadOnlySpan<byte> buffer)
- 定位与长度: Seek(long offset, SeekOrigin origin) / SetLength(long value)
- 资源管理: Flush() (刷新缓冲区)、 Close() / Dispose() (关闭释放资源),推荐用 using 语句自动释放。
4. 字节流读写示例
- 读取文件:通过 FileStream 循环读取字节数组,再用 Encoding.UTF8.GetString 转换为字符串。
- 写入文件:将字符串转为字节数组,通过 FileStream 的 Write 方法写入, FileMode.Append 为追加模式。
- 文件复制:通过两个 FileStream (一个读、一个写),借助字节数组缓冲区循环读写,自动创建目标文件目录。
5. 字符流(嵌套流,仅文本文件)
- 核心类: StreamReader (字符输入流)、 StreamWriter (字符输出流),可直接操作字符,无需手动转换字节数组。
- 构造方式:支持传入文件路径或底层 Stream 对象,可指定编码(如UTF-8)。
6. 缓冲流(BufferedStream)工作原理
- 读取:一次性从底层流读取大量数据到缓冲区,后续读取直接从缓冲区获取,减少IO次数。
- 写入:先将数据写入缓冲区,缓冲区满或调用 Flush 时,一次性写入底层流。
C# IO流核心知识点总结
张小明
前端开发工程师
学生党必备!这款桌面课表工具太省心了
上课前翻遍手机找课表?担心走神错过上课时间?对于学生党和老师来说,一款顺手的课表工具能省不少事!今天电脑天空要给大家安利的「桌面课表 Class Widget」,就是这样一款精准解决课程管理痛点的桌面小工具。它最戳人的点…
深度学习实验14代码
实验前准备 数据集 # make data import random import numpy as np import os # 固定随机种子 random.seed(0) np.random.seed(0)def generate_data(length, k, save_path):if length < 3:raise ValueError("The length of data should be greater than 2.")if k …
优化及性能-–-behaviac
原文 优化及性能 宏BEHAVIAC_RELEASE定义的时候是最终版,BEHAVIAC_RELEASE没有定义的时候是为开发版。 在debug版中,BEHAVIAC_RELEASE缺省下没有定义的。诸如logging、socketing、热加载等开发功能是有效的。可以通过behaviac::Config::IsLogging和be…
练题100天——DAY26:汇总区间+丢失的数字+数组交集
今天又又是三道题,难度范围:★★~★★★。难度完全是凭个人做的感觉标的,题还是得自己做了才知道。 100天也已经过1/4了,非常之不错啊,希望这些记录能让我对这些题的理解更深,当然,也希望能对你…
当AI芯片不再性感:博通的高增长,为何成了催命符?
出品I下海fallsea撰文I胡不知2025年12月12日16点03分,纳斯达克交易大厅的电子屏突然泛起红光。博通(AVGO.US)的股价在连续30分钟的抛售潮中直线下坠,从开盘402美元跌至357美元,单日跌幅最终定格在11.2%,市值…
Vibe Coding:AI驱动的编程新范式
Vibe Coding:AI驱动的编程新范式与MaynorAPIPro的完美结合 在2025年,人工智能技术迅猛发展,编程领域也迎来了一场革命。其中,“Vibe Coding”作为一种新兴的AI辅助软件开发技巧,正迅速流行开来。这种方法由AI专家Andr…