Java 将字节数组读入base64编码图像

Java 将字节数组读入base64编码图像,java,json,base64,vaadin,Java,Json,Base64,Vaadin,我试图将一个图像读入ByteArrayOutputStream,然后将该数组编码为Base64,作为json的一部分发送到我的API。我想避免将其保存在任何地方,而只是读取、编码和发送。不幸的是,当我在Base64.getEncoder.encodeToString()方法中将ByteArrayOutputStream.toByteArray()用作参数时,它返回一个字符串,与成功将文件读入Base64的测试相比,该字符串中包含额外的中断字符“\” 可以直接从字节数组读入基64吗?或者我必须翻译

我试图将一个图像读入ByteArrayOutputStream,然后将该数组编码为Base64,作为json的一部分发送到我的API。我想避免将其保存在任何地方,而只是读取、编码和发送。不幸的是,当我在Base64.getEncoder.encodeToString()方法中将ByteArrayOutputStream.toByteArray()用作参数时,它返回一个字符串,与成功将文件读入Base64的测试相比,该字符串中包含额外的中断字符“\”

可以直接从字节数组读入基64吗?或者我必须翻译成一个图像,然后再转换到base 64


非常感谢您的帮助。

从base64获取图像:

byte[] b = DatatypeConverter.parseBase64Binary(base64Img);
ByteArrayInputStream s = new ByteArrayInputStream(b);
return new Image(s);

也许它可以帮助你做相反的事情。

显然,将输出流直接传递到编码器是个问题。我添加了一个局部变量来引用字节[],然后将其传递到编码器中,它现在可以工作了

byte[] array = outputStream.toByteArray();
String base64String = Base64.getEncoder().encodeToString(array);