サーバー クライアント アーキテクチャを適応させるプロジェクトに取り組んでいます。クライアントとサーバー間で転送されるメッセージは、文字列とバイト配列の組み合わせです。メッセージ全体のサイズを事前に送信する必要があります。
バイト配列のバイト サイズを見つけるのは簡単ですが、文字列の場合はそうではありません。明らかに、これらの文字列をバイト配列に変換できます (エンコーディングを考慮します)。しかし、これらの文字列は長くなる可能性があり、それらのコピーにメモリを割り当てたくありません (たとえば、getBytes() は新しい配列を割り当てます)。
私の質問は、次のことを行う最もメモリ効率の良い方法は何ですか?
- 文字列のバイト サイズを調べる (UTF-8 エンコーディングを使用)
- そのサイズを出力ストリームに書き込みます
- 文字列を出力ストリームに書き込みます