Java 电子邮件附件中未正确解码Base64编码pdf文件流字节数组

Java 电子邮件附件中未正确解码Base64编码pdf文件流字节数组,java,pdf,amazon-s3,base64,Java,Pdf,Amazon S3,Base64,我需要发送AWS s3文件作为电子邮件附件在Base64编码。因此,在流中读取和写入文件内容,在Base64中对每个字节数组进行编码 附件可以使用文本文件,但不能使用pdf文件正确解码 下面是要写入outputStream的示例代码。读取3个字节的文件内容以进行正确的Base64编码和解码 byte[] bbuf = new byte[3]; while ((input = in.read(bbuf)) != -1) { // Url ByteArrayO

我需要发送AWS s3文件作为电子邮件附件在Base64编码。因此,在流中读取和写入文件内容,在Base64中对每个字节数组进行编码

附件可以使用文本文件,但不能使用pdf文件正确解码

下面是要写入outputStream的示例代码。读取3个字节的文件内容以进行正确的Base64编码和解码

byte[] bbuf = new byte[3];
while ((input = in.read(bbuf)) != -1)
        {
            // Url ByteArrayOutputstream
            wr.write(Base64Encoder.encode(bbuf).getBytes());
            wr.flush();

            // Also writing to File locally to know received content
            fs.write(bbuf, 0, input);
            fs.flush();

        }
我尝试了这个方法,在写入文件时效果很好,但没有使用Base64编码的电子邮件附件

我还尝试只编码0输入字节数组并写入这些编码字节,但也失败了

请帮帮我


感谢

有关Base64Encoder pls和wr变量的更多详细信息。您好,我使用了Apache编解码器Base64,org.Apache.commons.codec.binary.Base64.encodeBase64bbuf,结果没有什么不同。wr是URLConnection conn=url.openConnection;ByteArrayOutputStream wr=ByteArrayOutputStreamconn.getOutputStream;我会在我的一个应用程序中发布我的解决方案。我记得我遇到了一些与图像编码相关的问题,它实际上与字节缓冲区有关,Base64编码不能很好地记住问题本身Base64.encodeBase64StringIOUtils.toByteArrayitem.getInputStream;我建议您使用一些在线编码工具,并在编码字符串相同时进行检查。