c# - 智能 ASCII 字符串表示

标签 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);

但我必须手动完成许多此类条目。

最佳答案

如果您要创建一个文本文件,为什么要使用 BinaryWriter?只需使用 TextWriterBinaryWriter 适用于您想以简单方式编写原语、字符串等的二进制流。

(顺便说一句,您的所有文本肯定都将是 ASCII 吗?您可能需要考虑改用 UTF-8。)

关于c# - 智能 ASCII 字符串表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1176309/

相关文章:

c# - 无法使用 GraphServiceClient 更新 Azure Active Directory B2C 用户 - ASP.NET MVC

java - 读取两个(不同的)数字( float )组成的字符串。输出更大的数字。不要使用 “if”

java - Java 中的正则表达式速度

algorithm - 最小化段落中的总空白空间 - 算法

optimization - 经典ASP的性能提示?

c# - GridView - 使用 javascript 更改网格数据行中控件的页脚

c# - .NET XmlWriter 中的正确命名空间管理

c# - 并发读取/写入 Redis 集 - 单服务器多客户端

python - 如何显示字符串中除第一个字母之外的所有字母

c++ - 无法在没有对象的情况下调用成员函数 std::string class::function()