-1

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

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

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

然而,当我尝试以下操作时:

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

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

public StreamWriter(Stream stream, Encoding encoding);

我究竟做错了什么?

4

1 回答 1

5

如果您查看 和 之间的差异StreamWriterStreamReader您会发现虽然有以下构造函数

StreamReader(string, Encoding)

没有构造函数

StreamWriter(string, Encoding)

我的猜测是someFileand的类型someOtherFilestring,不是Stream

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

于 2013-01-31T14:09:01.493 回答