溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中將接口返回的字節(jié)串轉(zhuǎn)為文件的方法是什么

發(fā)布時(shí)間:2021-11-05 09:04:34 來源:億速云 閱讀:122 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“Java中將接口返回的字節(jié)串轉(zhuǎn)為文件的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Java中將接口返回的字節(jié)串轉(zhuǎn)為文件的方法是什么”吧!

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

最近公司要在項(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ò)的,不明所以。

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

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

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

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

如上代碼,我們先將字符串中的逗號(hào)和中括號(hào)替換掉,然后再轉(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è)了,不免感嘆,大家還是要去多多利用可以使用的資源,有些情況可能很簡單就能解決了,沒必要去太過深扣,希望大家可以有所借鑒吧。

到此,相信大家對(duì)“Java中將接口返回的字節(jié)串轉(zhuǎn)為文件的方法是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI