StreamWriter的Visual Studio bug还是我的误会?

Joh*_*ith -1 c# streamwriter streamreader

我必须处理一些包含西里尔文本的文件,我在Visual Studio 2012 Ultimate中使用StreamReader/ StreamWriter.

然而,有一些荒谬的问题(或我的误解).以下构造函数工作得很好:

using (StreamReader reader = new StreamReader(someFile, Encoding.Default)){
}
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试以下内容时:

using (StreamWriter writer = new StreamWriter(someOtherfile, Encoding.Default)){
}
Run Code Online (Sandbox Code Playgroud)

我得到一个ivalid构造函数的编译时错误.然而,以下是MSDN的规范:

public StreamWriter(Stream stream, Encoding encoding);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Jon*_*eet 5

如果你看看之间的差异StreamWriterStreamReader你会看到,虽然一个构造的:

StreamReader(string, Encoding)
Run Code Online (Sandbox Code Playgroud)

没有一个构造函数

StreamWriter(string, Encoding)
Run Code Online (Sandbox Code Playgroud)

我的猜测是该类型的someFilesomeOtherFilestring不是Stream.

建议你不要使用,Encoding.Default除非你真的,确定你想要特定于平台的默认编码,这可能无法处理所有的Unicode.如果可能,请使用UTF-8代替.