我有一个.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==".
答案 0 :(得分:1)
试试这个:
byte[] buf = Files.readAllBytes(Paths.get(file.getPath()));
buf = java.util.Base64.getEncoder().encode(buf);
这将对base64进行编码,并且可能更适合你。