题:
什么是之间的不同FileStream
,并StreamWriter
在净?
您应该使用什么上下文?它们的优缺点是什么?
可以将这两者合二为一吗?
Answers:
dotnet中的FileStream和StreamWriter有什么区别?
AFileStream
是一个Stream
。像所有流一样,它仅处理byte[]
数据。
AStreamWriter : TextWriter
是流装饰器。TextWriter将诸如string或char之类的Text数据编码到byte[]
然后将其写入链接的中Stream
。
您应该使用什么上下文?它们的优缺点是什么?
有byte[]
数据时,使用裸FileStream 。StreamWriter
当您要编写文本时添加一个。使用格式化程序或串行器写入更复杂的数据。
可以将这两者合二为一吗?
是。您始终需要一个Stream才能创建StreamWriter。helper方法System.IO.File.CreateText("path")
将组合创建它们,然后您只需要Dispose()外作者即可。
好吧,从MSDN获得FileStream
:
在文件周围公开Stream,同时支持同步和异步读取和写入操作。
和MSDN用于StreamWriter
:
实现一个TextWriter,用于以特定编码将字符写入流中。
最明显的区别是FileStream
允许读/写操作,而StreamWriter
只写。
该StreamWriter
页面继续添加:
StreamWriter设计用于特定编码的字符输出,而从Stream派生的类设计用于字节输入和输出。
所以第二个区别是FileStream
字节,而StreamWriter
文本。
它们是用于将信息输出到已知数据源的两个不同级别。
AFileStream
是一种类型的Stream,从概念上讲是一种指向某个位置并可以处理往返于该位置的传入和/或传出数据的机制。存在用于读取/写入文件,网络连接,内存,管道,控制台,调试和跟踪侦听器以及其他几种类型的数据源的流。具体来说,FileStream
存在一个执行对文件系统的读取和写入的操作。大多数流的用法很底层,并且以字节为单位处理数据。
AStreamWriter
是Stream的包装,可简化使用该流输出纯文本的过程。它公开了采用字符串而不是字节的方法,并执行往返于字节数组的必要转换。还有其他作家。您要使用的另一个主要对象是XmlTextWriter
,它有助于以XML格式编写数据。还有与Writers相对应的Reader读者,它们以类似的方式包装Stream并有助于取回数据。
FileStream
是一种流,专门针对文件量身定制。流在本机上使用字节,但是StreamWriter
/ Reader将在任何流上写/读文本,而不仅仅是FileStream
s。例如,MemoryStreams
,NetworkStreams
等。