zoukankan      html  css  js  c++  java
  • java对象---序列化与反序列化

    private static final String TEMP_ENCODING = "ISO-8859-1";
    private static final String DEFAULT_ENCODING = "UTF-8";

    /**
    * 把java对象序列化成字符串
    * @param obj
    * @return
    * @throws IOException
    */
    public static String writeToStr(Object obj) throws IOException {
    // 此类实现了一个输出流,其中的数据被写入一个 byte 数组。
    // 缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据。
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    // 专用于java对象序列化,将对象进行序列化
    ObjectOutputStream objectOutputStream = null;
    String serStr = null;
    try {
    objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
    objectOutputStream.writeObject(obj);
    serStr = byteArrayOutputStream.toString(TEMP_ENCODING);
    serStr = java.net.URLEncoder.encode(serStr, DEFAULT_ENCODING);
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    objectOutputStream.close();
    }
    return serStr;
    }


    /**
    * 把字符串反序列化java对象
    * @param serStr
    * @return
    * @throws IOException
    */
    public static Object deserializeFromStr(String serStr) throws IOException {
    ByteArrayInputStream byteArrayInputStream = null;
    ObjectInputStream objectInputStream = null;
    try {
    String deserStr = java.net.URLDecoder.decode(serStr, DEFAULT_ENCODING);
    byteArrayInputStream = new ByteArrayInputStream(deserStr.getBytes(TEMP_ENCODING));
    objectInputStream = new ObjectInputStream(byteArrayInputStream);
    return objectInputStream.readObject();
    } catch (IOException e) {
    e.printStackTrace();
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } finally {
    objectInputStream.close();
    byteArrayInputStream.close();
    }
    return null;
    }

  • 相关阅读:
    YTU 2802: 判断字符串是否为回文
    YTU 2392: 求各位数字之和
    YTU 2391: 求素数
    HDU 2064:汉诺塔III
    HDU 2187:悼念512汶川大地震遇难同胞——老人是真饿了
    HDU 2036:改革春风吹满地
    HDU 1081:To The Max
    HDU 1257:最少拦截系统
    YTU 2425: C语言习题 输出月份
    YTU 2420: C语言习题 不等长字符串排序
  • 原文地址:https://www.cnblogs.com/xiaowenwu/p/5148478.html
Copyright © 2011-2022 走看看