java - 转换为字节数组并返回后文件不可读

标签 java arrays jms

我有一个 .tar.gz 文件,需要将其放入字节数组中,以便将其放入 IBM JMS 队列中。问题是,转换为字节数组后,当我转换回文件时,我的文件不再可读。以下两行将文件读入 JMS 消息,然后将字节写入文件。

Files.readAllBytes(Paths.get(file.getPath()))

Files.write(filename, message.getBytes(), StandardOpenOption.CREATE);

我还需要做其他事情吗,也许与格式相关才能使这项工作正常进行?从队列中消耗消息的程序给了我这个错误(打印出二进制文件后)

is not a valid base64Binary.  A valid example is "AA==".

最佳答案

试试这个:

byte[] buf = Files.readAllBytes(Paths.get(file.getPath()));
buf = java.util.Base64.getEncoder().encode(buf);

这将对字节进行 Base64 编码,可能会更适合您。

关于java - 转换为字节数组并返回后文件不可读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42657074/

相关文章:

java - 在 SomeView 类 onDrawBitmap 方法中使位图适合屏幕

java - 实现 JpaRepository 时不需要@Repository?

java - 基于 vector 和点的四元数旋转

javascript - 使用javascript减少数组

java - TIBCO JMS palatte 的 jar 文件的名称?

java - JMS 队列轮询示例

java - 与 MVC Servlet/JSP 应用程序相比,Java EE 应用程序如何扩展?

java - 自签名证书 - 无法从客户端访问相关链接

javascript - 如何在存储到数组中的 forEach 中返回响应/ promise ?

c# - 索引在 C# 中的数组边界之外