2012-05-08 18 views
0

最小のメモリ量を使用して、非常に大きなテキストファイル(通常100 MB以上)の文字コード「windows-1252」をUTF8に変換する必要があります。大きな文字ファイルを特定の文字セットからUTF8に変換する

これを行うための最速/最低メモリオーバーヘッド方法は、誰でも知っていますか?

私はいくつかの超高速なStreamReader/StreamWriterの組み合わせを想定しています!

おかげ

Encoding.Convert方法は byte[]で動作
+1

これはどのように建設的ではありませんか?これは実際の問題です。リソースに制約のある環境では、巨大なテキストファイルをメモリにロードしてFile.WriteAllText()を使用することはできません。 – krisdyson

答えて

3

最初に指定したUTF-8で、StreamWriterでそれを書いて同じ繰り返しに"windows-1252"

  • とのStreamReaderでそれを読んで

    • によって、あなたがそれの塊で動作するすべてのデータを割り当てることをしたくない場合
  • 2

    - あなたは、新しいファイルへの書き込み元のファイルからの読み込み、小さなバッファでこれを呼び出すことができます。元のファイルが可変バイトエンコーディングを使用している場合は、可能であれば文字境界でのみバッファに読み込むことに非常に注意する必要があります。

    これは、選択したバッファサイズに応じて、必要なだけ多くのメモリを使用します。

    関連する問題