站长网 教程 Java中将接口返回的字节串转为文件说明

Java中将接口返回的字节串转为文件说明

讲一下现在的需求场景 最近公司要在项目中访问一个第三方服务,在这个第三方服务中,需要下载一个报告文件,通过一个接口反馈回来。 这个下载接口返回了一个字节串,如[1,2,3,4,5,6,7],当然真实的数据不会是这个样子的。 但是我们如何将这个字节串转成文件

讲一下现在的需求场景
 
最近公司要在项目中访问一个第三方服务,在这个第三方服务中,需要下载一个报告文件,通过一个接口反馈回来。
 
这个下载接口返回了一个字节串,如[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[]>() {
});
最佳解决方案也就这个了,不免感叹,大家还是要去多多利用可以使用的资源,有些情况可能很简单就能解决了,没必要去太过深扣,希望大家可以有所借鉴吧。

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/video/2021/1107/21727.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部