您好,登錄后才能下訂單哦!
Java實現byte[]轉List的代碼怎么寫,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
其實這個工具是給自己寫的,因為自己老是忘記。所以記錄一下。
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>30.1.1-jre</version> </dependency>
package ai.guiji.csdn.tools; import com.google.common.primitives.Bytes; import java.util.Arrays; import java.util.List; /** @Author 劍客阿良_ALiang @Date 2022/1/26 14:51 @Description: byte工具 */ public class ByteUtils { /** * 字節組轉list * * @param bytes 字節組 * @return List */ public static List<Byte> bytesToList(byte[] bytes) { return Bytes.asList(bytes); } /** * list轉字節組 * * @param list list * @return byte[] */ public static byte[] listToBytes(List<Byte> list) { return Bytes.toArray(list); } /** * 截取bytes * * @param bytes 字節組 * @param from 起始位 * @param to 結束位 * @return bytes */ public static byte[] subBytes(byte[] bytes, int from, int to) { return Arrays.copyOfRange(bytes, from, to); } }
代碼說明
1、主要通過guava工具包來實現,代碼簡潔。
java不僅能實現byte[]轉List,還能實現Map、List和byte[]互轉
Map轉換成byte[]可以通過先將Map轉換成json,然后再將json轉換成byte[],List和byte[]互轉思路是一樣的。
//將map轉換成byte[] protected byte[] changeMapToByte(Map<String,String> map) { byte[] bytes = null; try { bytes = JsonSerilizable.serilizableForMap(map).getBytes(); } catch (Exception e) { baselog.error("map到byte[]轉換異常",e); } return bytes; } //將byte[]轉換成map protected Map<String, String> changeByteToMap(byte[] bytes) { Map<String, String> retmap = null; try { if(bytes != null) { retmap = JsonSerilizable.deserilizableForMapFromFile(new String(bytes), String.class); }else { baselog.error("changeByteToMap中bytes為null"); } } catch (Exception e) { baselog.error("byte到map轉換異常",e); } return retmap; }
JsonSerilizable類代碼如下:
package com.jd.goldeneye.stat.common; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import com.jd.fastjson.JSON; import com.jd.fastjson.TypeReference; public class JsonSerilizable { /* 將鏈表序列化為字符串存入json文件中 */ public static String serilizableForList(Object objList) throws IOException { String listString = JSON.toJSONString(objList, true);// (maps,CityEntity.class); return listString; } /* 將json文件中的內容讀取出來,反序列化為鏈表 */ public static <T> List<T> deserilizableForListFromFile(String listString2,Class<T> clazz) throws IOException { List<T> list2 = JSON.parseArray(listString2, clazz); return list2; } /* 將HashMap序列化為字符串存入json文件中 */ public static String serilizableForMap(Object objMap) throws IOException { String listString = JSON.toJSONString(objMap, true);// (maps,CityEntity.class); return listString; } /* 將json文件中的內容讀取出來,反序列化為HashMap */ public static <T, K> HashMap<K, T> deserilizableForMapFromFile(String listString2,Class<T> clazz) throws IOException { Map<K, T> map = JSON.parseObject(listString2, new TypeReference<Map<K, T>>() {}); return (HashMap<K, T>) map; } //使用方法 注意Entity為隨機定義,使用時用自己的類名替換下就可以用了 /*String pathName = "src/test/java/com/...../resources/file.json"; List<Entity> entityList = new ArrayList<Entity>(); JsonSerilizable.serilizableForList(entityList, pathName); List<Entity> entityList2 = JsonSerilizable .deserilizableForListFromFile(pathName, Entity.class); HashMap<Integer, Entity> Map = new HashMap<Integer, Entity>(); JsonSerilizable.serilizableForMap(Map, pathName); HashMap<Integer, Entity> Map2 = JsonSerilizable .deserilizableForMapFromFile(pathName, Entity.class);*/ }
測試例子:
//將map轉換成byte[] protected byte[] changeMapToByte(Map<String,String> map) { byte[] bytes = null; try { bytes = JsonSerilizable.serilizableForMap(map).getBytes(); } catch (Exception e) { baselog.error("map到byte[]轉換異常",e); } return bytes; } //將byte[]轉換成map protected Map<String, String> changeByteToMap(byte[] bytes) { Map<String, String> retmap = null; try { if(bytes != null) { retmap = JsonSerilizable.deserilizableForMapFromFile(new String(bytes), String.class); }else { baselog.error("changeByteToMap中bytes為null"); } } catch (Exception e) { baselog.error("byte到map轉換異常",e); } return retmap; }
Java是一門面向對象編程語言,可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。