java - 如何在 Java 中将字符串表示的 ByteBuffer 转换为字节数组

标签 java scala

我是 Java 的新手,我不确定如何执行以下操作:

某处的 Scala 应用程序将字符串转换为字节:

ByteBuffer.wrap(str.getBytes)

我将这个字节数组收集为一个 Java String,我希望做上面 Scala 代码所做的相反的事情,因此得到原始的 String (object str以上)。

ByteBuffer 作为 String 作为开始是我唯一的选择,因为我正在从 AWS Kinesis 流中读取它(或者是吗?) . Scala 代码也不应更改。

示例字符串:

String str = "AAAAAAAAAAGZ7dFR0XmV23BRuufU+eCekJe6TGGUBBu5WSLIse4ERy9............";

这在 Java 中如何实现?

编辑

好的,所以我将尝试详细说明该过程:

  1. 第 3 方 Scala 应用程序生成我需要使用的 CSV 行
  2. 在将这些行存储到 AWS Kinesis 流之前,应用程序对每一行执行以下操作:

    ByteBuffer.wrap(output.getBytes);
    
  3. 我从流中以字符串形式读取数据,该字符串可能如下所示:

    String str = "AAAAAAAAAAGZ7dFR0XmV23BRuufU+eCekJe6TGGUBBu5WSLIse4ERy9............";
    
  4. 我需要将上面的字符串的内容还原成其原始的、可读的形式;

我希望我现在说得更清楚了,很抱歉一开始就让你们感到困惑。

最佳答案

如果你想从 byte[]String,试试 new String(yourBytes)

getBytesString(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"));

其他选项:Base64 Encoding in Java

关于java - 如何在 Java 中将字符串表示的 ByteBuffer 转换为字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25868574/

相关文章:

scala - SBT生成的Docker容器无法打包子项目

Scala 列表索引

java - 如果 key 已存在,则向列表添加新行

java - Android 警报对话框无法找到 View

java - 在 GWT 中设计图形用户界面

java - JAX-RS、Playframework scala(REST 后端)、Web Api 的优缺点

scala - 处理对象字段验证的最佳方法=>要么/试试(scala 2.10)/ValidationNEL(scalaz)

java - 为 ByteBuffer 分配创建一个辅助函数 android OpenGL ES

java - sarxos 的图书馆网络摄像头捕获不适用于覆盆子

scala - 有没有办法对类型进行递归隐式定义?