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整合JavaMail实现发邮件的项目实践
本文主要介绍了SpringBoot整合JavaMail实现发邮件的项目实践,详细阐述了使用SpringBoot和JavaMail发送邮件的步骤,具有一定的参考价值,感兴趣的可以了解一下2023-10-10利用Java Apache POI 生成Word文档示例代码
本篇文章主要介绍了利用Java Apache POI 生成Word文档示例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-05-05SpringCloud使用Feign实现远程调用流程详细介绍
OpenFeign源于Netflix的Feign,是http通信的客户端。屏蔽了网络通信的细节,直接面向接口的方式开发,让开发者感知不到网络通信细节。所有远程调用,都像调用本地方法一样完成2023-02-02SpringBoot和VUE源码直接整合打包成jar的踩坑记录
这篇文章主要介绍了SpringBoot和VUE源码直接整合打包成jar的踩坑记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-03-03
最新评论