智能ASCII字符串表示

时间:2009-07-24 07:58:35

标签: c# string optimization encoding ascii

我有一个将二进制文件转换为ASCII文件的应用程序。使用分析器我发现我花了25%的时间做了从BinaryWriter.Write(wchar [])调用的Encoding.GetBytes()。这是完全正确的,因为我有许多类似于这个的结构:

m_writer.Write("some fancy long text".ToCharArray());

您是否知道如何避免此编码转换?

我现在有一个想法是做类似的事情:

const byte[] SOME_FANCY_LONG_TEXT = Encoding.ASCII.GetBytes("some fancy ...");
// ... and later
m_writer.Write(SOME_FANCY_LONG_TEXT);

但我必须手动执行许多此类条目。

1 个答案:

答案 0 :(得分:5)

如果您要创建文本文件,为什么要使用BinaryWriter?只需使用TextWriter即可。 BinaryWriter适用于二进制流,您希望以简单的方式编写基元,字符串等。

(顺便说一句,你的所有文字肯定都是ASCII吗?你可能想考虑使用UTF-8。)