すべてのデータをキーと値のペアで保存するプロジェクトに取り組んでいます。キーと値はどちらも文字列です。これを変更することは、現在の範囲を超えています。各データの概念は、protobuf メッセージによって表されます。
そのため、protobuf メッセージを文字列として保存する必要があります。メッセージを message.toByteString().toString() として保存するだけで十分ですか? または、たとえば Base32 エンコーディングを使用して byte[] をエンコードする必要がありますか?
編集
永続性のために ByteString を使用してもうまくいかないようです:
Message m = ...;
ByteString s = m.toByteString();
ByteString s_ = ByteString.copyFromUtf8(s.toStringUtf8());
Message.PARSER.parseFrom(s_);
プロトコル メッセージの解析中に、フィールドの途中で入力が予期せず終了しました。これは、入力が切り捨てられたか、埋め込まれたメッセージがそれ自体の長さを誤って報告したことを意味する可能性があります。
m.toByteArray() で Base32 エンコーディングを使用することを提案しますか? データ型を string から byte[] に変更することは現在範囲外であることに注意してください。
ありがとうございました!