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流核心知识点总结
张小明
前端开发工程师
使用cmake构建Cplusplus版运行时库-–-behaviac
原文 请首先到/language/zh/downloads/下载或克隆源码。 缺省的,我们使用cmake来生成对应平台的项目文件(sln或make文件等)。 但cmake不是必须的,也可以选择自己喜欢的方式创建自己的项目文件。比如,使用premake等来…
基于 GEE 的 Landsat 8 数据构建遥感生态指数(RSEI)并进行生态质量评估
目录 一、前言 二、基础参数定义(第 1-2 步) (一)研究区定义 (二)时间范围与可视化参数 三、Landsat 8 影像加载与预处理(第 3 步) (一)核心目标 &…
pytesseract 中英文 识别图片文字
要使用 pytesseract 识别图片文字,你需要先安装 Tesseract OCR引擎 和 Pillow库,然后通过几行 Python 代码导入库、加载图片,并调用 image_to_string() 函数进行识别,传入图片路径和指定语言 (如 ‘eng’ 或 ‘chi_sim’) 即可获得文本内容。 步骤 1: 安装 Tesseract OCR引…
20、文件搜索、压缩与归档操作指南
文件搜索、压缩与归档操作指南 1. 文件搜索技巧 在日常的文件管理中,我们常常需要搜索特定的文件。传统的方式可能会多次执行命令,效率较低。为了提高效率,我们可以采用以下两种方法。 1.1 利用 find 命令的新特性 将 find 命令结尾的分号 ; 替换为加号 + ,就能…
Flutter 2025:从架构革命到商业落地的终极指南
一、Flutter 2025:为什么它成为大厂的“降维打击”武器?2025 年,全球 Top 50 App 中 42% 使用 Flutter(Statista 数据)。从 TikTok 国际版到 Google Ads,Flutter 已从“实验性框架”进化为 企业级开发的首选…
《终极金钱心智》
本书核心是拆解巴菲特的 “金钱心智”,以其成长与投资历程为脉络,解析价值投资演变与投资哲学内核:一、金钱心智的核心定义与本质金钱心智是一种融合对市场看法、投资方法、投资者气质的世界观,是思考重大财务问题(如资…