Java中将接口返回的字节串转为文件详解

 更新时间:2021年11月04日 17:08:34   作者:墨三十一  
这篇文章主要给大家介绍了关于Java中将接口返回的字节串转为文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

讲一下现在的需求场景

最近公司要在项目中访问一个第三方服务,在这个第三方服务中,需要下载一个报告文件,通过一个接口反馈回来。

这个下载接口返回了一个字节串,如[1,2,3,4,5,6,7],当然真实的数据不会是这个样子的。

但是我们如何将这个字节串转成文件流呢?

接下来就一起来看看吧,也跟大家分享一下我处理的思路。

试一下直接转字符串后转字节数组

我首先拿到了这个字节串,但是并没有办法直接转成字节数组byte[]。

这个时候我想到一个方法,那就是直接讲这个字节串转成字符串,也就是下面的代码:

Object obj = "[1,2,3,4,5,6,7]";
String string = (String) obj;
byte[] bytes = string.getBytes();
InputStream inputStream = new ByteArrayInputStream(target);

很遗憾,这样是错的,不明所以。

没有办法,只能再去另寻方法。

再试一下是不是特殊符合[],还有逗号造成的失败。

于是我又再次尝试了这种方式,代码给到大家,如下:

Object obj = "[1,2,3,4,5,6,7]";
String string = (String) obj;
byte[] bytes = string.getBytes();
InputStream inputStream = new ByteArrayInputStream(target);

如上代码,我们先将字符串中的逗号和中括号替换掉,然后再转成字节数组。

可惜,同样也失败了,没办法只能再次另寻他法。

最后还是不想浪费太多时间,找了一下第三方服务是否提供了代码示例

哇唔,还真有的,于是真给了一段代码示例,虽然有点草率,但是很关键。

我把代码示例中如何转字节数组的方法贴出来,供大家学习一下。

Object obj = "[1,2,3,4,5,6,7]";
String string = (String) obj;
ObjectMapper mapper = new ObjectMapper();
byte[] target = mapper.readValue(string , new TypeReference<byte[]>() {
});

最佳解决方案也就这个了,不免感叹,大家还是要去多多利用可以使用的资源,有些情况可能很简单就能解决了,没必要去太过深扣,希望大家可以有所借鉴吧。

总结

到此这篇关于Java中将接口返回的字节串转为文件的文章就介绍到这了,更多相关Java接口返回字节串转文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot+MinIO+KKFileView实现文件预览功能

    SpringBoot+MinIO+KKFileView实现文件预览功能

    本文主要介绍了使用SpringBoot、MinIO和KKFileView实现文件上传和在线预览功能,通过配置MinIO存储文件,并使用KKFileView生成预览链接,感兴趣的可以了解一下
    2024-11-11
  • java abstract class interface之间的区别介绍

    java abstract class interface之间的区别介绍

    含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象,abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法
    2012-11-11
  • springboot使用消息中间件

    springboot使用消息中间件

    这篇文章主要介绍了springboot使用消息中间件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java实现的贷款金额计算功能示例

    Java实现的贷款金额计算功能示例

    这篇文章主要介绍了Java实现的贷款金额计算功能,结合实例形式分析了Java简单数值运算及类型转换等相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • Java超详细教你写一个网络购书系统案例

    Java超详细教你写一个网络购书系统案例

    这篇文章主要介绍了怎么用Java来写一个购书系统,购买书籍主要需要每本书的编号、书名、单价、库存属性,能够让客户通过编号来选书,感兴趣的朋友跟随文章往下看看吧
    2022-03-03
  • Java导出Word文档的四种方法

    Java导出Word文档的四种方法

    在日常的开发工作中,我们时常会遇到导出Word文档报表的需求,比如公司的财务报表、医院的患者统计报表、电商平台的销售报表等等,所以本文给大家介绍了Java导出Word文档的四种方法,并通过代码示例讲解的非常详细,需要的朋友可以参考下
    2025-03-03
  • java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)

    java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)

    这篇文章主要介绍了java后台调用HttpURLConnection类模拟浏览器请求实例,该实例可用于接口调用,具有一定的实用价值,需要的朋友可以参考下
    2014-10-10
  • SpringBoot项目整合MybatisPlus并使用SQLite作为数据库的过程

    SpringBoot项目整合MybatisPlus并使用SQLite作为数据库的过程

    SQLite是一个紧凑的库,启用所有功能后,库大小可以小于 750KiB, 具体取决于目标平台和编译器优化设置, 内存使用量和速度之间需要权衡,这篇文章主要介绍了SpringBoot项目整合MybatisPlus并使用SQLite作为数据库,需要的朋友可以参考下
    2024-07-07
  • Java代理模式之静态代理与动态代理的区别及优缺点

    Java代理模式之静态代理与动态代理的区别及优缺点

    代理模式是一种常用的设计模式,它允许通过引入一个代理对象来控制对目标对象的访问,在Java中,代理模式被广泛应用,它可以提供额外的功能,如权限检查、缓存、日志记录等,本文将介绍静态代理与动态代理的区别及优缺点,需要的朋友可以参考下
    2023-06-06
  • Java实现中英文词典功能

    Java实现中英文词典功能

    这篇文章主要为大家详细介绍了Java实现中英文词典功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论