您好,登錄后才能下訂單哦!
本篇內容主要講解“Java中將接口返回的字節串轉為文件的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“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中將接口返回的字節串轉為文件的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。