我是 Java 的新手,我不确定如何执行以下操作:
某处的 Scala 应用程序将字符串转换为字节:
ByteBuffer.wrap(str.getBytes)
我将这个字节数组收集为一个 Java String
,我希望做上面 Scala 代码所做的相反的事情,因此得到原始的 String (object str
以上)。
将 ByteBuffer
作为 String
作为开始是我唯一的选择,因为我正在从 AWS Kinesis 流中读取它(或者是吗?) . Scala 代码也不应更改。
示例字符串:
String str = "AAAAAAAAAAGZ7dFR0XmV23BRuufU+eCekJe6TGGUBBu5WSLIse4ERy9............";
这在 Java 中如何实现?
编辑
好的,所以我将尝试详细说明该过程:
- 第 3 方 Scala 应用程序生成我需要使用的 CSV 行
在将这些行存储到 AWS Kinesis 流之前,应用程序对每一行执行以下操作:
ByteBuffer.wrap(output.getBytes);
我从流中以字符串形式读取数据,该字符串可能如下所示:
String str = "AAAAAAAAAAGZ7dFR0XmV23BRuufU+eCekJe6TGGUBBu5WSLIse4ERy9............";
我需要将上面的字符串的内容还原成其原始的、可读的形式;
我希望我现在说得更清楚了,很抱歉一开始就让你们感到困惑。
最佳答案
如果你想从 byte[]
到 String
,试试 new String(yourBytes)
。
getBytes
和 String(byte[])
都使用默认字符编码。
来自 Amazon Kinesis Service API Reference :
The data blob to put into the record, which is Base64-encoded when the blob is serialized.
您需要对字符串进行 base64 解码。使用 Java 8 它看起来像:
byte[] bytes = Base64.getDecoder().decode("AAAAAAAAAAGZ7dFR0XmV23BR........");
str = new String(bytes, "utf-8"));
关于java - 如何在 Java 中将字符串表示的 ByteBuffer 转换为字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25868574/