Stream和Reader、Writer对象学习

1. Stream 是所有流的抽象基类。流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道或者 TCP/IP 套接字。Stream 类及其派生类提供这些不同类型的输入和输出的一般视图,使程序员不必了解操作系统和基础设备的具体细节。

常用的Stream的子类有:

System.IO.FileStream 存储在文件系统的字节流

这个要重点学习。

System.IO.MemoryStream 存储在内存中的字节流

System.IO.BufferedStream为其他流提供缓冲的流

System.Net.Sockets.NetworkStream通过网络设备读写的字节流


  Stream提供了读写流的方法是以字节的形式从流中读取内容。而我们经常会用到从字节流中读取文本或者写入文本,微软提供了StreamReader和StreamWriter类帮我们实现在流上读写字符串的功能。

2. TextReader 表示可读取连续字符系列的读取器。

StreamReaderStringReader 的抽象基类,它们分别从流和字符串读取字符。使用这些派生类可打开一个文本文件以读取指定范围的字符,或基于现有的流创建一个读取器。

2.1  StreamReader 类

实现一个 TextReader,使其以一种特定的编码从字节流中读取字符。

StreamReader 旨在以一种特定的编码输入字符,而 Stream 类用于字节的输入和输出。使用 StreamReader 读取标准文本文件的各行信息。

2.2  StreamWriter 类

实现一个 TextWriter,使其以一种特定的编码向流中写入字符。

StreamWriter 旨在以一种特定的编码输出字符,而从 Stream 派生的类则用于字节的输入和输出。StreamWriter 默认使用 UTF8Encoding 的实例,除非指定了其他编码。

 


3. BinaryReader和BinaryWriter 类

BinaryReader用特定的编码将基元数据类型读作二进制值。

BinaryWriter以二进制形式将基元类型写入流,并支持用特定的编码写入字符串。

参考文献:

http://www.cnblogs.com/yukaizhao/archive/2011/07/28/stream.html文章不错!!

http://msdn.microsoft.com/zh-cn/library/system.io.stream(v=VS.80).aspx

http://msdn.microsoft.com/zh-cn/library/system.io.textreader(v=VS.80).aspx

http://msdn.microsoft.com/zh-cn/library/system.io.streamreader(v=VS.80).aspx

http://msdn.microsoft.com/zh-cn/library/system.io.streamwriter.aspx

 

posted @   太一吾鱼水  阅读(297)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示