java 序列化和反序列化(针对字符串的例子)

1.前言.
   摘自:http://blog.csdn.net/linminqin/article/details/7654276
2.例子.
package lmiky.test.obj;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class SerTest {

	/**
	 * 方法说明
	 * @author lmq0382 
	 * @date 2012-6-11
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("number", "123");
		map.put("name", "test");
		list.add(map);
		HashMap<String, String> map2 = new HashMap<String, String>();
		map2.put("number", "1232");
		map2.put("name", "test2");
		list.add(map2);
		
		ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
		ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
		objectOutputStream.writeObject(list);  
		String serStr = byteArrayOutputStream.toString("ISO-8859-1");
		serStr = java.net.URLEncoder.encode(serStr, "UTF-8");
		
		objectOutputStream.close();
		byteArrayOutputStream.close();
		
		System.out.println(serStr);
				
		String redStr = java.net.URLDecoder.decode(serStr, "UTF-8");
		ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(redStr.getBytes("ISO-8859-1"));
		ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream); 
		List<HashMap<String, String>> newList = (List<HashMap<String, String>>)objectInputStream.readObject(); 
		objectInputStream.close();
		byteArrayInputStream.close();
		

		for(Map m : newList) {
			System.out.println(m.get("number") + " " + m.get("name"));
		}
	}

}


猜你喜欢

转载自nannan408.iteye.com/blog/2152247
今日推荐