欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中將接口返回的字節(jié)串轉(zhuǎn)為文件詳解

 更新時(shí)間:2021年11月04日 17:08:34   作者:墨三十一  
這篇文章主要給大家介紹了關(guān)于Java中將接口返回的字節(jié)串轉(zhuǎn)為文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

講一下現(xiàn)在的需求場景

最近公司要在項(xiàng)目中訪問一個(gè)第三方服務(wù),在這個(gè)第三方服務(wù)中,需要下載一個(gè)報(bào)告文件,通過一個(gè)接口反饋回來。

這個(gè)下載接口返回了一個(gè)字節(jié)串,如[1,2,3,4,5,6,7],當(dāng)然真實(shí)的數(shù)據(jù)不會(huì)是這個(gè)樣子的。

但是我們?nèi)绾螌⑦@個(gè)字節(jié)串轉(zhuǎn)成文件流呢?

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

試一下直接轉(zhuǎn)字符串后轉(zhuǎn)字節(jié)數(shù)組

我首先拿到了這個(gè)字節(jié)串,但是并沒有辦法直接轉(zhuǎn)成字節(jié)數(shù)組byte[]。

這個(gè)時(shí)候我想到一個(gè)方法,那就是直接講這個(gè)字節(jié)串轉(zhuǎn)成字符串,也就是下面的代碼:

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

很遺憾,這樣是錯(cuò)的,不明所以。

沒有辦法,只能再去另尋方法。

再試一下是不是特殊符合[],還有逗號造成的失敗。

于是我又再次嘗試了這種方式,代碼給到大家,如下:

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

如上代碼,我們先將字符串中的逗號和中括號替換掉,然后再轉(zhuǎn)成字節(jié)數(shù)組。

可惜,同樣也失敗了,沒辦法只能再次另尋他法。

最后還是不想浪費(fèi)太多時(shí)間,找了一下第三方服務(wù)是否提供了代碼示例

哇唔,還真有的,于是真給了一段代碼示例,雖然有點(diǎn)草率,但是很關(guān)鍵。

我把代碼示例中如何轉(zhuǎn)字節(jié)數(shù)組的方法貼出來,供大家學(xué)習(xí)一下。

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[]>() {
});

最佳解決方案也就這個(gè)了,不免感嘆,大家還是要去多多利用可以使用的資源,有些情況可能很簡單就能解決了,沒必要去太過深扣,希望大家可以有所借鑒吧。

總結(jié)

到此這篇關(guān)于Java中將接口返回的字節(jié)串轉(zhuǎn)為文件的文章就介紹到這了,更多相關(guān)Java接口返回字節(jié)串轉(zhuǎn)文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用RestTemplate訪問https實(shí)現(xiàn)SSL請求操作

    使用RestTemplate訪問https實(shí)現(xiàn)SSL請求操作

    這篇文章主要介紹了使用RestTemplate訪問https實(shí)現(xiàn)SSL請求操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 如何使用Java調(diào)用Linux系統(tǒng)命令

    如何使用Java調(diào)用Linux系統(tǒng)命令

    這篇文章主要介紹了如何使用Java調(diào)用Linux系統(tǒng)命令,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java Thread 多線程

    java Thread 多線程

    本篇文章小編為大家介紹,java Thread 多線程。需要的朋友參考下
    2013-04-04
  • Java并發(fā)編程之顯示鎖ReentrantLock和ReadWriteLock讀寫鎖

    Java并發(fā)編程之顯示鎖ReentrantLock和ReadWriteLock讀寫鎖

    這篇文章主要介紹了Java并發(fā)編程之顯示鎖ReentrantLock和ReadWriteLock讀寫鎖,本文講解了ReentrantLock概況、Lock接口、Lock使用、輪詢鎖的和定時(shí)鎖、公平性、可中斷獲鎖獲取操作等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • @Conditional注解的使用場景和源碼解析

    @Conditional注解的使用場景和源碼解析

    這篇文章主要介紹了@Conditional注解的使用場景和源碼解析,@Conditional是一個(gè)條件注解,它的作用是判斷Bean是否滿足條件,如果滿足條件,則將Bean注冊進(jìn)IOC中,如果不滿足條件,則不進(jìn)行注冊,需要的朋友可以參考下
    2023-11-11
  • Springboot基于enable模塊驅(qū)動(dòng)的實(shí)現(xiàn)

    Springboot基于enable模塊驅(qū)動(dòng)的實(shí)現(xiàn)

    這篇文章主要介紹了Springboot基于enable模塊驅(qū)動(dòng)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 詳解java.lang.reflect.Modifier.isInterface()方法

    詳解java.lang.reflect.Modifier.isInterface()方法

    這篇文章主要介紹了詳解java.lang.reflect.Modifier.isInterface()方法的相關(guān)資料,這里提供實(shí)例幫助大家理解這個(gè)方法的使用,需要的朋友可以參考下
    2017-09-09
  • MyBatis全局配置文件詳解

    MyBatis全局配置文件詳解

    這篇文章主要介紹了mybatis 加載配置文件的方法,通過實(shí)例代碼給大家介紹了mybatis 加載配置文件的兩種方式,需要的朋友可以參考下
    2021-07-07
  • Java中ThreadLocal的使用及原理詳解

    Java中ThreadLocal的使用及原理詳解

    這篇文章主要介紹了Java中ThreadLocal的使用及原理詳解,ThreadLocal是JDK提供的,提供線程本地變量,主要用來存放線程獨(dú)有變量和解決參數(shù)傳遞問題的,需要的朋友可以參考下
    2023-09-09
  • 基于Eclipce配置Spring Boot過程圖解

    基于Eclipce配置Spring Boot過程圖解

    這篇文章主要介紹了基于Eclipce配置Spring Boot過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03

最新評論