【发布时间】:2018-03-27 09:25:08
【问题描述】:
我有一个String 变量,比如string,我将它转换为byte[],然后我使用Base64 将其编码为byte[],比如encodedByteArr。使用以下代码:
String string = "Test";
byte[] encodedByteArr= null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(check);
encodedByteArr= Base64.encodeBase64(bos.toByteArray());
oos.flush();
oos.close();
bos.close();
System.out.println("Encoded value is:- "+encodedByteArr);
输出是:
编码值为:- [B@5fd0d5ae
现在,我在另一种方法中收到与String 相同的编码值,这意味着:
String string = "[B@5fd0d5ae";
它只不过是我在上面的代码中生成的byte[] 的String 表示。
现在我的任务是实际解码值并取回原始文本,即"Test"。
为此,我希望byte[] 的String 表示回到byte[],而不会失去其完整性。
【问题讨论】:
-
您实际上已经解决了您的问题(我认为)。问题是您以错误的方式打印数组......并且输出让您认为您做错了。
-
你永远无法从
[B@5fd0d5ae中解码任何内容。您需要比默认的toString()更有意义的编码。