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流核心知识点总结
张小明
前端开发工程师
Java 虚拟机(JVM)内存模型与垃圾回收机制研究
Java 虚拟机(JVM)是Java跨平台特性的核心,其内存模型与垃圾回收(GC)机制是Java领域的重要学术研究课题,直接决定了Java程序的运行效率与稳定性。JVM 内存模型将运行时数据区分为方法区、堆、虚拟机栈、本地…
Java 面向对象设计模式的应用与设计原则
设计模式是Java面向对象编程的高级应用形式,是对软件开发中常见问题的标准化解决方案,也是Java学术研究与工程实践的重要结合点。GoF(四人组)提出的23种设计模式,基于封装、继承、多态的核心特性,将代码设计…
AC15启动项分析,漏洞分析
1、固件模拟sudo chroot . sh /bin/httpd第一个问题,监听ip有问题我们需要配置网卡sudo brctl addbr br0sudo ifconfig br0 192.168.100.3这里我们设置br0网卡,启动web成功启动,这里监听的就是我们设置的ip这里我们可以运行这个脚本ÿ…
二、python语法基础
一、前言与概述前面了解了python安装以及环境的准备,下面是关于python语法基础的一个概要:二、语法内容(一)、基础语法开始之前:注释代码# 单行注释 """ 多行注释 """多行注释 1、变量与…
2025动漫剧本推荐,无需成本轻松创作
2025动漫剧本推荐,无需成本轻松创作动漫作为一种深受大众喜爱的艺术形式,拥有着庞大的受众群体。而一个优秀的动漫剧本,则是动漫作品成功的关键。在2025年,有哪些值得推荐的动漫剧本创作工具呢?本文将为您介绍一款无需…
Linux 进程管理
在 Linux C/C 开发中,进程管理是系统编程的核心知识点之一。从父子进程的创建、进程的终止到僵尸进程的避免,每一个环节都影响着程序的稳定性。本文将从基础概念到实践代码,详细讲解 Linux 进程管理的关键技术。一、父子进程:写时…