java - 将 Base64 字符串保存到文件

标签 java base64

我从 Web 服务调用中获取 JSON 响应

![JSON REsponse from web service call ] 1

我必须将此文件保存到我的系统中。我正在使用以下代码:

        BASE64Decoder decoder = new BASE64Decoder();
        byte[] decodedBytes = decoder.decodeBuffer(response);
        ByteArrayInputStream bis = new ByteArrayInputStream(decodedBytes);         
        bis.close();
        File file = new File("C:/image one.jpeg");
        FileOutputStream fop = new FileOutputStream(file);
        fop.write(decodedBytes);
        fop.flush();
        fop.close();

文件已保存,但已损坏且无法打开。有人可以阐明我做错了什么吗?

最佳答案

尝试使用java.util.Base64中的Base64

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

或者来自org.apache.commons.codec.binaryBase64

byte[] decodedBytes = Base64.decodeBase64(base64String);

并且您不需要 ByteArrayInputStream 对象

查看此link更详细的答案

关于java - 将 Base64 字符串保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53508600/

相关文章:

java - 如何从 Java 应用程序中传输实时视频?

java - 验证方法应该返回 null 还是 AuthentificationException?

java - 是否-XX :+UseSerialGC use main thread for GC

encoding - 解码两个不同的 base64 字符串返回两次相同的字符串

java - HMAC解密

java - 循环一周中的几天

python - 在解码 pubsub 消息时应用于谷歌云功能时,BASE64 解码不起作用

mysql - 从数据库调用后,我的 Base64 图像以不同的格式返回

java - 在S3上解压缩base64 gzip并保存到本地文件系统

java - 在单元/集成测试阶段将属性值注入(inject)/覆盖到 Spring Boot 属性文件