gpt4 book ai didi

c# - IO 101 : Which are the main differences between TextWriter, FileStream 和 StreamWriter?

转载 作者:IT王子 更新时间:2023-10-29 03:57:23 24 4
gpt4 key购买 nike

如果这个问题对于你们这些经验丰富的程序员来说可能听起来有点业余,让我首先道歉,问题是我在工作中一直有很多关于这个的争论所以我真的想弄清楚这个问题,这就是为什么我我依靠 stackoverflow 社区一劳永逸地解决这个问题 :)

因此,一方面,根据 MSDN,我们有:

TextWriter Class

Represents a writer that can write a sequential series of characters. This class is abstract.

FileStream Class

Exposes a Stream around a file, supporting both synchronous and asynchronous read and write operations.

StreamWriter Class

Implements a TextWriter for writing characters to a stream in a particular encoding.

另一方面,很明显它们都属于 System.IO,但考虑到 MSDN 示例混合了其中的一些示例,我仍然没有达到非常想要的 a-ha 时刻。

如有任何意见,我们将不胜感激,在此先致谢!

最佳答案

流处理字节,写入器处理字符

字节 != 字符。一个字符可能需要多个字节来表示。从字符到字节的映射称为编码

FileStream 指的是写入文件的字节,类似于 MemoryStream 指的是写入内存缓冲区的字节。为了将字符写入流,您需要将它们转换为字节串。这就是 StreamWriter 发挥作用的地方。它采用字符序列和编码,并将其转换为字节序列。

TextWriter 是所有 Writers 都必须遵守的接口(interface)(好吧,抽象基类)。它具有基于字符的所有操作。字节的等效项是 Stream 抽象基类。

事情也朝着相反的方向发展。有一个 TextReader 抽象基类,描述如何从某处读取字符,还有一个 StreamReader,它允许您从提供编码的面向字节的流中读取字符 -但这次反过来使用,在适当的地方将任何多字节序列聚合成单个字符。

Stream 可用于读取和写入,因为字节是 I/O 操作中使用的最低级别的项目。

关于c# - IO 101 : Which are the main differences between TextWriter, FileStream 和 StreamWriter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1010555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com