欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java实现byte[]转List的示例代码

程序员文章站 2022-06-10 11:06:02
目录前言maven依赖代码补充前言其实这个工具是给自己写的,因为自己老是忘记。所以记录一下。maven依赖

前言

其实这个工具是给自己写的,因为自己老是忘记。所以记录一下。

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实现byte[]转list的示例代码的详细内容,更多关于java byte[]转list的资料请关注其它相关文章!

相关标签: Java byte[] List