Java 中无需编码的字符串到字节数组

问题描述 投票:0回答:1

我正在使用 com.google.protobuf.ByteString 并尝试将其序列化,以便我可以将其存储为字符串。

String value = Arrays.toString(byteString.toByteArray());

现在我想反转它并将其改回 byteString。

byte[] byteArray = value.getBytes(); ??
ByteString.copyFrom(byteArray);

我怀疑这是否有效。使用上面第一行的字符串格式的 ByteString 示例如下所示 [0, 0, 0, 0, 1, -118, 7, -52, 0, 0]。没关系,我不介意存储这个。看起来这些字符完全用数字表示。现在我想反转它,以便我可以重新创建一个 ByteString。问题是我不知道如何将其转换回字节数组并撤消 Arrays.toString(byte[])。

我最初不知道字节数组的编码。它来自 saleforce 重播 ID。我也没有一种简单的方法将其存储为字节数据。是否有一些奇特的 Arrays.UndoString() 或者我必须编写自己的函数?

java arrays salesforce
1个回答
0
投票

Arrays.toString
并不是真的意味着要撤消。当然你可以为它编写一个解析器。但如果有其他选择,你为什么还要这么做呢?

替代方案 1:Base64

使用

import java.util.Base64;
Base64.getEncoder().encodeToString(yourarray)

将数组转换为字符串并且

Base64.getDecoder().decode(yourstring)

取回数组。

替代方案 2:JSON

产生更具可读性的字符串,但需要一个有很多外部库。因此我不会在这里给出任何示例代码。

© www.soinside.com 2019 - 2024. All rights reserved.