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

时间:2013-01-31 14:05:10

标签: c# streamreader streamwriter

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

然而,有一些荒谬的问题(或我的误解)。以下构造函数工作正常:

using (StreamReader reader = new StreamReader(someFile, Encoding.Default)){
}

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

using (StreamWriter writer = new StreamWriter(someOtherfile, Encoding.Default)){
}

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

public StreamWriter(Stream stream, Encoding encoding);

我做错了什么?

1 个答案:

答案 0 :(得分:5)

如果你看一下StreamWriterStreamReader之间的差异,你会看到there is a constructor之间的差异:

StreamReader(string, Encoding)

的构造函数
StreamWriter(string, Encoding)

我的猜测是someFilesomeOtherFile的类型是string,而不是Stream

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