精华内容
下载资源
问答
  • 一、前言通过定义类型TypeUtils工具类(依赖fastjson包),实现常用数据类型和对象间的相互转换 - 对象转换日期castToSqlDate、对象转时间戳castToTimestamp、对象转大精度数据类型castToBigDecimal、对象转字符串...

    一、前言

    通过定义类型TypeUtils工具类(依赖fastjson包),实现常用数据类型和对象间的相互转换 - 对象转换日期castToSqlDate、对象转时间戳castToTimestamp、对象转大精度数据类型castToBigDecimal、对象转字符串castToString等。

    二、代码示例import java.math.BigDecimal;@b@import java.math.BigInteger;@b@import java.text.ParseException;@b@import java.text.SimpleDateFormat;@b@import java.util.Calendar;@b@import java.util.Date;@b@@b@import com.alibaba.fastjson.JSON;@b@import com.alibaba.fastjson.JSONException;@b@import com.alibaba.fastjson.parser.JSONScanner;@b@import com.alibaba.fastjson.util.Base64;@b@@b@public class TypeUtils {@b@@b@public static final String castToString(Object value) {@b@        if (value == null) {@b@            return null;@b@        }@b@@b@        return value.toString();@b@    }@b@@b@    public static final Byte castToByte(Object value) {@b@        if (value == null) {@b@            return null;@b@        }@b@@b@        if (value instanceof Number) {@b@            return ((Number) value).byteValue();@b@        }@b@@b@        if (value instanceof String) {@b@            String strVal = (String) value;@b@            if (strVal.length() == 0) {@b@                return null;@b@            }@b@            return Byte.parseByte(strVal);@b@        }@b@@b@        throw new JSONException("can not cast to byte, value : " + value);@b@    }@b@@b@    public static final Character castToChar(Object value) {@b@        if (value == null) {@b@            return null;@b@        }@b@@b@        if (value instanceof Character) {@b@            return (Character) value;@b@        }@b@@b@        if (value instanceof String) {@b@            String strVal = (String) value;@b@@b@            if (strVal.length() == 0) {@b@                return null;@b@            }@b@@b@            if (strVal.length() != 1) {@b@                throw new JSONException("can not cast to byte, value : " + value);@b@            }@b@@b@            return strVal.charAt(0);@b@        }@b@@b@        throw new JSONException("can not cast to byte, value : " + value);@b@    }@b@@b@    public static final Short castToShort(Object value) {@b@        if (value == null) {@b@            return null;@b@        }@b@@b@        if (value instanceof Number) {@b@            return ((Number) value).shortValue();@b@        }@b@@b@        if (value instanceof String) {@b@            String strVal = (String) value;@b@            if (strVal.length() == 0) {@b@                return null;@b@            }@b@            return Short.parseShort(strVal);@b@        }@b@@b@        throw new JSONException("can not cast to short, value : " + value);@b@    }@b@@b@    public static final BigDecimal castToBigDecimal(Object value) {@b@        if (value == null) {@b@            return null;@b@        }@b@@b@        if (value instanceof BigDecimal) {@b@            return (BigDecimal) value;@b@        }@b@@b@        if (value instanceof BigInteger) {@b@            return new BigDecimal((BigInteger) value);@b@        }@b@@b@        String strVal = value.toString();@b@        if (strVal.length() == 0) {@b@            return null;@b@        }@b@@b@        return new BigDecimal(strVal);@b@    }@b@@b@    public static final BigInteger castToBigInteger(Object value) {@b@        if (value == null) {@b@            return null;@b@        }@b@@b@        if (value instanceof BigInteger) {@b@            return (BigInteger) value;@b@        }@b@@b@        if (value instanceof Float || value instanceof Double) {@b@            return BigInteger.valueOf(((Number) value).longValue());@b@        }@b@@b@        String strVal = value.toString();@b@        if (strVal.length() == 0) {@b@            return null;@b@        }@b@@b@        return new BigInteger(strVal);@b@    }@b@@b@    public static final Float castToFloat(Object value) {@b@        if (value == null) {@b@            return null;@b@        }@b@@b@        if (value instanceof Number) {@b@            return ((Number) value).floatValue();@b@        }@b@@b@        if (value instanceof String) {@b@            String strVal = value.toString();@b@            if (strVal.length() == 0) {@b@                return null;@b@            }@b@@b@            return Float.parseFloat(strVal);@b@        }@b@@b@        throw new JSONException("can not cast to float, value : " + value);@b@    }@b@@b@    public static final Double castToDouble(Object value) {@b@        if (value == null) {@b@            return null;@b@        }@b@@b@        if (value instanceof Number) {@b@            return ((Number) value).doubleValue();@b@        }@b@@b@        if (value instanceof String) {@b@            String strVal = value.toString();@b@            if (strVal.length() == 0) {@b@                return null;@b@            }@b@            return Double.parseDouble(strVal);@b@        }@b@@b@        throw new JSONException("can not cast to double, value : " + value);@b@    }@b@@b@    public static final Date castToDate(Object value) {@b@        if (value == null) {@b@            return null;@b@        }@b@@b@        if (value instanceof Calendar) {@b@            return ((Calendar) value).getTime();@b@        }@b@@b@        if (value instanceof Date) {@b@            return (Date) value;@b@        }@b@@b@        long longValue = -1;@b@@b@        if (value instanceof Number) {@b@            longValue = ((Number) value).longValue();@b@        }@b@@b@        if (value instanceof String) {@b@            String strVal = (String) value;@b@@b@            if (strVal.indexOf('-') != -1) {@b@                String format;@b@                if (strVal.length() == JSON.DEFFAULT_DATE_FORMAT.length()) {@b@                    format = JSON.DEFFAULT_DATE_FORMAT;@b@                } else if (strVal.length() == 10) {@b@                    format = "yyyy-MM-dd";@b@                } else if (strVal.length() == "yyyy-MM-dd HH:mm:ss".length()) {@b@                    format = "yyyy-MM-dd HH:mm:ss";@b@                } else {@b@                    format = "yyyy-MM-dd HH:mm:ss.SSS";@b@                }@b@@b@                SimpleDateFormat dateFormat = new SimpleDateFormat(format);@b@                try {@b@                    return (Date) dateFormat.parse(strVal);@b@                } catch (ParseException e) {@b@                    throw new JSONException("can not cast to Date, value : " + strVal);@b@                }@b@            }@b@@b@            if (strVal.length() == 0) {@b@                return null;@b@            }@b@@b@            longValue = Long.parseLong(strVal);@b@        }@b@@b@        if (longValue 

    展开全文
  • 来自 : http://blog.csdn.net/luckyzhoustar/article/details/50402427/*** @FileName: ByteToObject.java* @Package:com.test* @Description: TODO* @author: LUCKY* @date:2015年12月25日 下午12:18:08* @version...

    来自 : http://blog.csdn.net/luckyzhoustar/article/details/50402427

    /**

    * @FileName: ByteToObject.java

    * @Package:com.test

    * @Description: TODO

    * @author: LUCKY

    * @date:2015年12月25日 下午12:18:08

    * @version V1.0

    */

    package com.test;

    import java.io.ByteArrayInputStream;

    import java.io.ByteArrayOutputStream;

    import java.io.ObjectInputStream;

    import java.io.ObjectOutputStream;

    import java.util.HashMap;

    import java.util.Map;

    /**

    * @ClassName: ByteToObject

    * @Description: 字节与对象之间的转换

    * @author: LUCKY

    * @date:2015年12月25日 下午12:18:08

    */

    public class ByteToObject {

    public static void main(String[] args) throws Exception {

    Student stu=new Student();

    stu.setAge("15");

    stu.setName("张三");

    Map map=new HashMap();

    map.put("001", "001");

    map.put("002", "002");

    stu.setWage(map);

    ByteArrayOutputStream byt=new ByteArrayOutputStream();

    ObjectOutputStream obj=new ObjectOutputStream(byt);

    obj.writeObject(stu);

    byte[] bytes=byt.toByteArray();

    System.out.println(bytes);

    ByteArrayInputStream byteInt=new ByteArrayInputStream(bytes);

    ObjectInputStream objInt=new ObjectInputStream(byteInt);

    Student stu2=new Student();

    stu2=(Student)objInt.readObject();

    System.out.println(stu2);

    }

    }

    展开全文
  • * @FileName: ByteToObject.java * @Package:com.test * @Description: TODO * @author: LUCKY * @date:2015年12月25日 下午12:18:08 * @version V1.0 */ package com.test; import java.io.ByteArrayInputStream; ...
    /**
    * @FileName: ByteToObject.java
    * @Package:com.test
    * @Description: TODO
    * @author: LUCKY
    * @date:2015年12月25日 下午12:18:08
    * @version V1.0
    */
    package com.test;
    
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
    * @ClassName: ByteToObject
    * @Description: 字节与对象之间的转换
    * @author: LUCKY
    * @date:2015年12月25日 下午12:18:08
    */
    public class ByteToObject {
    
    public static void main(String[] args) throws Exception {
    Student stu=new Student();
    stu.setAge("15");
    stu.setName("张三");
    Map<String, String> map=new HashMap<String, String>();
    map.put("001", "001");
    map.put("002", "002");
    stu.setWage(map);
    
    ByteArrayOutputStream byt=new ByteArrayOutputStream();
    
    ObjectOutputStream obj=new ObjectOutputStream(byt);
    
    obj.writeObject(stu);
    
    byte[] bytes=byt.toByteArray();
    System.out.println(bytes);
    
    
    ByteArrayInputStream byteInt=new ByteArrayInputStream(bytes);
    ObjectInputStream objInt=new ObjectInputStream(byteInt);
    Student stu2=new Student();
    stu2=(Student)objInt.readObject();
    
    System.out.println(stu2);
    }
    }

     

    展开全文
  • 直接上代码 package com.study.auth.config.core.handler; import lombok.Data; import lombok.extern.slf4j.Slf4j;...import java.io.*;...import java.util.Arrays;...import java.util.Objects;...对象和.

    直接上代码

    package com.study.auth.config.core.handler;
    
    import lombok.Data;
    import lombok.extern.slf4j.Slf4j;
    
    import java.io.*;
    import java.util.Arrays;
    import java.util.Objects;
    
    /**
     * @Package: com.study.auth.config.core.handler
     * @Description: <对象和二进制数组及流对象间的转换>
     * @Author: milla
     * @CreateDate: 2020/09/09 09:52
     * @UpdateUser: milla
     * @UpdateDate: 2020/09/09 09:52
     * @UpdateRemark: <>
     * @Version: 1.0
     */
    @Slf4j
    public class ByteArrayUtil {
        public static void main(String[] args) {
            Student student = new Student("冯程程", "上海金融大街", 23, "女");
            byte[] array = toByteArray(student);
            System.out.println("字节数组:" + Arrays.toString(array));
            ByteArrayOutputStream arrayOutputStream = toOutputStream(student);
            System.out.println("输出流: " + arrayOutputStream);
    
            Student obj = toObject(array, Student.class);
            Student obj1 = toObject(arrayOutputStream, Student.class);
    
            System.out.println("字节数组转换成对象:" + obj);
        }
    
        /**
         * 将ByteArrayOutputStream输出流转换成对象
         *
         * @param outputStream 输出流
         * @param clazz        要转话程的对象class文件
         * @param <T>          要转化的对象
         * @return
         */
        public static <T> T toObject(ByteArrayOutputStream outputStream, Class<T> clazz) {
            if (Objects.isNull(outputStream)) {
                log.error("outputStream array can not be null");
                return null;
            }
            byte[] data = outputStream.toByteArray();
            return toObject(data, clazz);
        }
    
        /**
         * 将输入流转换成对象
         *
         * @param inputStream 输入流
         * @param clazz       要转换成对象的class文件
         * @param <T>         要转换程的对象类型
         * @return
         */
        public static <T> T toObject(InputStream inputStream, Class<T> clazz) {
            if (Objects.isNull(inputStream)) {
                log.error("inputStream array can not be null");
                return null;
            }
            ObjectInputStream obj = null;
            try {
                obj = new ObjectInputStream(inputStream);
                return (T) obj.readObject();
            } catch (IOException | ClassNotFoundException e) {
                log.error("byte array to {} failed: {}", clazz.getName(), e);
                return null;
            } finally {
                try {
                    if (Objects.nonNull(inputStream)) {
                        inputStream.close();
                    }
                    if (Objects.nonNull(obj)) {
                        obj.close();
                    }
                } catch (IOException e) {
                    log.error("stream close failed: {}", e);
                }
    
            }
        }
    
        /**
         * 将byte数组转换成对象
         *
         * @param array byte数组
         * @param clazz 要转成的对象字节码
         * @param <T>   要转成的类型
         * @return
         */
        public static <T> T toObject(byte[] array, Class<T> clazz) {
            if (Objects.isNull(array) || array.length == 0) {
                log.error("byte array can not be null");
                return null;
            }
            ByteArrayInputStream bis = new ByteArrayInputStream(array);
            ObjectInputStream ois = null;
            try {
                ois = new ObjectInputStream(bis);
                return (T) ois.readObject();
            } catch (IOException | ClassNotFoundException e) {
                log.error("byte array to {} failed: {}", clazz.getName(), e);
                return null;
            } finally {
                try {
                    if (Objects.nonNull(bis)) {
                        bis.close();
                    }
                    if (Objects.nonNull(ois)) {
                        ois.close();
                    }
                } catch (IOException e) {
                    log.error("stream close failed: {}", e);
                }
    
            }
        }
    
        /**
         * 将对象抓换成二进制对象
         * Ps:对象必须实现Serializable接口,最好能给定一个serialVersionUID
         *
         * @param data 对象
         * @return
         */
        public static byte[] toByteArray(Object data) {
            ByteArrayOutputStream outputStream = toOutputStream(data);
            if (Objects.isNull(outputStream)) {
                return null;
            }
            return outputStream.toByteArray();
        }
    
        /**
         * 将对象转换成输出流
         * Ps:对象必须实现Serializable接口,最好能给定一个serialVersionUID
         *
         * @param data 对象
         * @return
         */
        public static ByteArrayOutputStream toOutputStream(Object data) {
            if (Objects.isNull(data)) {
                log.error("{} can not be null", data.getClass().getName());
                return null;
            }
            ByteArrayOutputStream array = new ByteArrayOutputStream();
            ObjectOutputStream objectWrite = null;
            try {
                objectWrite = new ObjectOutputStream(array);
                objectWrite.writeObject(data);
                objectWrite.flush();
                return array;
            } catch (IOException e) {
                log.error("{} to byte array failed: {}", data.getClass().getName(), e);
                return null;
            } finally {
                try {
                    if (Objects.nonNull(array)) {
                        array.close();
                    }
                    if (Objects.nonNull(objectWrite)) {
                        objectWrite.close();
                    }
                } catch (IOException e) {
                    log.error("stream close failed: {}", e);
                }
            }
        }
    
    }
    
    @Data
    class Student implements Serializable {
        /**
         * 序列化/反序列化必须实现Serializable接口
         * 想要不出现类型转换异常就需要有一个统一的serialVersionUID
         */
        private static final long serialVersionUID = 7824278330465676953L;
    
        private String name;
        private String address;
        private Integer age;
        private String sex;
    
        public Student(String name, String address, Integer age, String sex) {
            this.name = name;
            this.address = address;
            this.age = age;
            this.sex = sex;
        }
    }

     必要的依赖

       <dependency>
           <groupId>org.projectlombok</groupId>
           <artifactId>lombok</artifactId>
           <version>1.18.12</version>
       </dependency>

     

     PS::

    1.  对象一定要实现Serializable接口,否则不具备转换的基础条件
    2. 和对象序列化一样,如果对象有修改的可能一定要定义一个唯一serialVersionUID
    展开全文
  • Java中二进制,十进制,十六进制装换十进制成十六进制:Integer.toHexString(int i)十进制成八进制Integer.toOctalString(int i)十进制二进制Integer.toBinaryString(int i)十六进制成十进制Integer.value...
  • 深入Java虚拟机——类型装载、连接()来自...其中,装载就是把二进制形式的Java类型读入Java虚拟机中;而连接就是把...文章developerguy2015-09-25826浏览量li...
  • Java基础:二进制转换

    2017-10-06 23:16:05
    JAVA中的二进制用途:在跨平台中的应用:文件读写、数据通信  数据通信过程中,若客户端和服务器端都采用java语言,则客户端进行通信时给服务器端发送系列化的对象。将服务器端的语言改为C语言则会提高速度,C语言...
  • 通过二进制的方式节省空间,相比Json,不保存key,只保存value。value根据实际的类型转换为二进制保存。 二级制保存 文件本身包含格式信息,但只包含层级和基本类型,不包含属性名 使用方式 Bson bson = new Bson();...
  • 返回一个二进制字符串. 10进制8进制 Integer.toOctalString(n); 返回一个八进制字符串 10进制16进制 Integer.toHexString(n); 返回一个16进制字符串 10进制 any 进制 Integer.toString(n, any); 返回一个any...
  • 我有一个Java对象,现在我想将其转换为二进制形式(二进制协议)并通过网络发送,C客户端将接收它并打印内容。就像我有一个学生班学生.javaimport java.io.Serializable;public class Student implements Serializable...
  • 问题描述:现有的Java库函数有提供进制转换的方法被封装在Integer对象中.10进制转化其他进制 对应的方法,参数:n(原10进制... 一个二进制字符串.10进制8进制 Integer.toOctalString(n); 一个八进制字符串10进制16...
  • 十进制数二进制,八进制,十六进制)写在前面进制转换(数学方法)1、 转换为二进制算法解析算法源码2、 转换为八进制算法解析算法源码3、 转换为十六进制算法解析算法源码欢迎评论区评论字符拼接算法工具类源码...
  • 那么二进制,字节码这些会在哪里用到呢?自问自答:在跨平台的时候,就凸显神功了。比如说文件读写,数据通信,还有Java编译后的字节码文件。下面会有个数据通信的例子哦。Java对象实现Serializabll...
  • 序列化存储对象数据需要将数据需要转换成二进制: private static <T> byte[] toByteArray(T body) { ByteArrayOutputStream baos = null; ObjectOutputStream oos = null; try { baos = new ...
  • 方法1: 利用“移位”操作实现 public void binaryToDecimal(int n){ for(int i = 31;i &gt;= 0;... System.out.print(n &...调用面向对象函数实现 public void function1(int n){ String res...
  • 一,文本文件的读取1,FileInputStream:按字节读取文件1.1,导入包import java.io.FileInputStream;...1.2,生成一个InputStream对象InputStream in = new FileInputStream("myfile//a.txt");//("myfile//a.tx...
  • 我是Java编程的新手,但遇到了以下问题:我正在创建一个程序,该程序读取.csv文件,将其行转换...我的问题是,即使最近几天我都在研究,我也不知道如何在二进制文件中写入这些结构,也不知道如何读取它们.我想将行(及其索...
  • class jinzhizhuanhuan { public static void main(String[] args) { toBin(6); System.out.println("Hello World!...//数据添加对象 while(num>0) { sb.append(num%2);//数据存储
  • 进制转化在JAVA中已经封装好了.无论是常规的102,8,16,还是相对应的2,8,16进制转化为10进制的方法,当然也包括10->n进制,n进制10进制的常规方法.都被封装在Integer对象...一个二进制字符串.10进制8进制Intege...
  • 类的序列化需要支持Serializable接口,如果类支持序列化,可以通过ObjectOutPutStream和ObjectInputStream将对象和Stream之间进行方便的转换。首先来 看一下ObjectOutPutStream和ObjectInputStream的构造函数和常用...
  • 第一步 假如有个表core_player字段 items sql:select hex(items)from core_player where id = 1...得到 一串 二进制,复制保存。 第二步 ...
  • Java中的进制转换

    2020-08-11 17:20:37
    Java中的进制转换 进制转化在JAVA中已经封装好了,无论是常规的102,... 一个二进制字符串. 10进制8进制 Integer.toOctalString(n); 一个八进制字符串 10进制16进制 Integer.toHexString(n); 一个16进制字符串 10
  • Java之任意进制转换

    2019-03-13 22:32:00
    问题描述: 现有的Java库函数有提供进制转换的方法 被封装在Integer对象中.10进制转化其他进制 对应的方法,参数:n(原10进制... 一个二进制字符串.10进制8进制 Integer.toOctalString(n); 一个八进制字符串10进...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,094
精华内容 837
关键字:

java对象转二进制

java 订阅