阅读背景:

Java对象序列化成字符串和反序列化

来源:互联网 

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.



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: