gpt4 book ai didi

java - 如何(base64)将 protobuf 编码为字符串

转载 作者:搜寻专家 更新时间:2023-11-01 03:19:53 28 4
gpt4 key购买 nike

我有一个 protobuf,我想用 base64(或其他文本编码)对其二进制表示进行编码,以便通过文本协议(protocol)进行传输。最干净的方法是什么?

最佳答案

最简单的选择是 convert your proto to a byte[]然后使用 GuavaBaseEncoding将这些字节编码为 base64 字符串的类:

String asBase64 = BaseEncoding.base64().encode(proto.toByteArray());

这是最直接的,但还有许多其他大致相同的机制。例如,如果您想将编码数据写入文件或其他可写资源,您可以将其写入由 BaseEncoding.encodingStream() 返回的 OutputStream。 :

proto.writeTo(BaseEncoding.base64().encodingStream(fileWriter));

从 Java 8 开始,还有 java.util.Base64 ,如果你不使用 Guava 。参见 encode(byte[])wrap(OutputStream) .


正如 Jon Skeet 提到的,proto3 可以 map to and from JSON如果您不明确需要以二进制格式传输数据(当然,您使用的是 proto3)。

关于java - 如何(base64)将 protobuf 编码为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33787602/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com