1

バイナリ ファイルを ASCII ファイルに変換するアプリがあります。プロファイラーを使用すると、BinaryWriter.Write(wchar[]) から呼び出される Encoding.GetBytes() の実行に 25% の時間を費やしていることがわかりました。私はこれに似た多くの構造を持っているので、それは完全に正しいです:

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

このエンコーディング変換を回避する賢いアイデアはありますか?

私は今、1つのアイデアはこれに似た何かをすることです:

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

しかし、手動で行うには、そのようなエントリが多数必要です。

4

1 に答える 1

5

テキスト ファイルを作成している場合、なぜ使用BinaryWriterしているのですか? を使用するだけTextWriterです。BinaryWriterプリミティブや文字列などを簡単な方法で書きたいバイナリストリーム向けです。

(ちなみに、すべてのテキストは間違いなくASCII になりますか?代わりに UTF-8 の使用を検討することをお勧めします。)

于 2009-07-24T08:07:13.217 に答える