中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java實現byte[]轉List的代碼怎么寫

發布時間:2022-01-27 10:42:20 來源:億速云 閱讀:243 作者:kk 欄目:開發技術

Java實現byte[]轉List的代碼怎么寫,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

前言

其實這個工具是給自己寫的,因為自己老是忘記。所以記錄一下。

Maven依賴

        <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是什么

Java是一門面向對象編程語言,可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

正宁县| 呼伦贝尔市| 乌海市| 温州市| 高阳县| 河北省| 平顺县| 富平县| 仁化县| 五华县| 乌兰察布市| 司法| 昭苏县| 贵溪市| 峨眉山市| 都匀市| 安岳县| 河东区| 新巴尔虎右旗| 城步| 盐津县| 宁强县| 汕尾市| 无棣县| 常山县| 宁武县| 扬州市| 绥化市| 特克斯县| 梨树县| 宁晋县| 常山县| 历史| 淮滨县| 调兵山市| 米林县| 汨罗市| 武乡县| 周口市| 金阳县| 精河县|