为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 Pdf 转换为 base64 和编码/解码

如何将 Pdf 转换为 base64 和编码/解码

智慧大石 2021-08-19 16:19:45
好的,我有一些 pdf 需要通过 base64encoder 转换为 base64。最后,我使用解码器转换回 pdf 格式,但我的内容丢失了。我的代码:byte[] input_file = Files.readAllBytes(Paths.get("C:\\user\\Desktop\\dir1\\dir2\\test3.pdf"));    byte[] encodedBytes = Base64.getEncoder().encode(input_file);    String pdfInBase64 = new String(encodedBytes);    String originalString = new String(Base64.getDecoder().decode(encodedBytes));    System.out.println("originalString : " + originalString);    FileOutputStream fos = new FileOutputStream("C:\\user\\Desktop\\dir1\\dir2\\newtest3.pdf");    fos.write(originalString.getBytes());    fos.flush();    fos.close();结果 :编码:https : //pastebin.com/fnMACZzH
查看完整描述

3 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

您可以解码 base64 编码的字符串并将其传递byte[]给FileOutputStreamwrite 方法来解决此问题。


        String filePath = "C:\\Users\\xyz\\Desktop\\";

        String originalFileName = "96172560100_copy2.pdf";

        String newFileName = "test.pdf";


        byte[] input_file = Files.readAllBytes(Paths.get(filePath+originalFileName));


        byte[] encodedBytes = Base64.getEncoder().encode(input_file);

        String encodedString =  new String(encodedBytes);

        byte[] decodedBytes = Base64.getDecoder().decode(encodedString.getBytes());


        FileOutputStream fos = new FileOutputStream(filePath+newFileName);

        fos.write(decodedBytes);

        fos.flush();

        fos.close();


查看完整回答
反对 回复 2021-08-19
  • 3 回答
  • 0 关注
  • 526 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信