1、序列化:序列化后保存在一个字符串变量中
package com.lxh.ser.test;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
public class SerializeTest {
private static final String TEMP_ENCODING = "ISO-8859-1";
private static final String DEFAULT_ENCODING = "UTF-8";
public static void main(String[] args) throws IOException {
List<String> list = new ArrayList<String>();
list.add("abc");
list.add("ABC");
System.out.println(writeToStr(list));
}
<span style="white-space:pre"> /**
<span style="white-space:pre"> </span> * 将序列化的字符串反序列化成对象
<span style="white-space:pre"> </span> * @param serStr 系列化的字符串
<span style="white-space:pre"> </span> * @return Object 反序列化后得到原始的对象
<span style="white-space:pre"> </span> * @throws IOException
<span style="white-space:pre"> </span> */</span>
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;
}
}
package com.lxh.ser.