日期:2014-05-20  浏览次数:20837 次

关于序列化, unicode和utf编码的问题
本帖最后由 cloudeagle_bupt 于 2013-08-20 19:22:50 编辑
1. 编码这些应该是针对字符而言的,整形及数值这些是不需要编码的。因此,无论是硬盘中还是内存中,虽然存的都是二进制码,但是字符的编码方式可以是utf8,unicode等等。

2. 序列化只是一种将对象写入字节流的方法而已。可以自己去定义对象的拆分和组装,对象中的字符,写入字节流时,可以选择编码方式,其他的数值型的话,可以直接序列化。

参考例子:

 package serial;

import java.io.*;

public class SerialTest {

/**
 * @param args
 * @throws Exception 
 */
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub

Employee e1 = new  Employee( " zhangsan " , 25 , 3000.50 );   
        Employee e2 = new  Employee( " lisi " , 24 , 3200.40 );   
        Employee e3 = new  Employee( " wangwu " , 27 , 3800.55 );   
           
        FileOutputStream fos = new  FileOutputStream("employee.txt");   
        ObjectOutputStream oos = new  ObjectOutputStream(fos);   
        oos.writeObject(e1);   
        oos.writeObject(e2);   
        oos.writeObject(e3);   
        oos.close(); 
        
        FileInputStream fis = new  FileInputStream("employee.txt");   
        ObjectInputStream ois = new  ObjectInputStream(fis);   

        Employee e;   
        for ( int  i = 0 ;i < 3 ;i ++ )   
        {   
           e = (Employee)ois.readObject();   
           System.out.println(e.name + " : " + e.age + " : " + e.salary);