public class CharSetDemo01{
    public static void main(String args[]){
        System.out.println("系统默认编码:" +
            System.getProperty("file.encoding")) ;    // 获取当前系统编码
    }
};
import java.io.OutputStream ;
import java.io.FileOutputStream ;
import java.io.File ;
public class CharSetDemo02{
    public static void main(String args[]) throws Exception {
        File f = new File("D:" + File.separator + "test.txt") ;    // 实例化File类
        OutputStream out = new FileOutputStream(f) ;    // 实例化输出流
        byte b[] = "中国,你好!".getBytes("ISO8859-1") ;    // 转码操作
        out.write(b) ;    // 保存
        out.close() ;    // 关闭
    }
};
import java.io.Serializable ;
public class Person implements Serializable{
    private String name ;    // 声明name属性,但是此属性不被序列化
    private int age ;        // 声明age属性
    public Person(String name,int age){    // 通过构造设置内容
        this.name = name ;
        this.age = age ;
    }
    public String toString(){    // 覆写toString()方法
        return "姓名:" + this.name + ";年龄:" + this.age ;
    }
};
import java.io.File ;
import java.io.FileOutputStream ;
import java.io.OutputStream ;
import java.io.ObjectOutputStream ;
public class SerDemo01{
    public static void main(String args[]) throws Exception {
        File f = new File("D:" + File.separator + "test.txt") ;    // 定义保存路径
        ObjectOutputStream oos = null ;    // 声明对象输出流
        OutputStream out = new FileOutputStream(f) ;    // 文件输出流
        oos = new ObjectOutputStream(out) ;
        oos.writeObject(new Person("张三",30)) ;    // 保存对象
        oos.close() ;    // 关闭
    }
};
import java.io.File ;
import java.io.FileInputStream ;
import java.io.InputStream ;
import java.io.ObjectInputStream ;
public class SerDemo02{
    public static void main(String args[]) throws Exception {
        File f = new File("D:" + File.separator + "test.txt") ;    // 定义保存路径
        ObjectInputStream ois = null ;    // 声明对象输入流
        InputStream input = new FileInputStream(f) ;    // 文件输入流
        ois = new ObjectInputStream(input) ;    // 实例化对象输入流
        Object obj = ois.readObject() ;    // 读取对象
        ois.close() ;    // 关闭
        System.out.println(obj) ;
    }
};
import java.io.File ;
import java.io.IOException ;
import java.io.FileOutputStream ;
import java.io.OutputStream ;
import java.io.ObjectOutputStream ;
import java.io.FileInputStream ;
import java.io.InputStream ;
import java.io.ObjectInputStream ;
public class SerDemo03{
    public static void main(String args[]) throws Exception{
        //ser() ;
        dser() ;
    }
    public static void ser() throws Exception {
        File f = new File("D:" + File.separator + "test.txt") ;    // 定义保存路径
        ObjectOutputStream oos = null ;    // 声明对象输出流
        OutputStream out = new FileOutputStream(f) ;    // 文件输出流
        oos = new ObjectOutputStream(out) ;
        oos.writeObject(new Person("张三",30)) ;    // 保存对象
        oos.close() ;    // 关闭
    }
    public static void dser() throws Exception {
        File f = new File("D:" + File.separator + "test.txt") ;    // 定义保存路径
        ObjectInputStream ois = null ;    // 声明对象输入流
        InputStream input = new FileInputStream(f) ;    // 文件输入流
        ois = new ObjectInputStream(input) ;    // 实例化对象输入流
        Object obj = ois.readObject() ;    // 读取对象
        ois.close() ;    // 关闭
        System.out.println(obj) ;
    }
};
import java.io.File ;
import java.io.IOException ;
import java.io.FileOutputStream ;
import java.io.OutputStream ;
import java.io.ObjectOutputStream ;
import java.io.FileInputStream ;
import java.io.InputStream ;
import java.io.ObjectInputStream ;
public class SerDemo04{
    public static void main(String args[]) throws Exception{
        ser() ;
        dser() ;
    }
    public static void ser() throws Exception {
        File f = new File("D:" + File.separator + "test.txt") ;    // 定义保存路径
        ObjectOutputStream oos = null ;    // 声明对象输出流
        OutputStream out = new FileOutputStream(f) ;    // 文件输出流
        oos = new ObjectOutputStream(out) ;
        oos.writeObject(new Person("张三",30)) ;    // 保存对象
        oos.close() ;    // 关闭
    }
    public static void dser() throws Exception {
        File f = new File("D:" + File.separator + "test.txt") ;    // 定义保存路径
        ObjectInputStream ois = null ;    // 声明对象输入流
        InputStream input = new FileInputStream(f) ;    // 文件输入流
        ois = new ObjectInputStream(input) ;    // 实例化对象输入流
        Object obj = ois.readObject() ;    // 读取对象
        ois.close() ;    // 关闭
        System.out.println(obj) ;
    }
};
import java.io.File ;
import java.io.IOException ;
import java.io.FileOutputStream ;
import java.io.OutputStream ;
import java.io.ObjectOutputStream ;
import java.io.FileInputStream ;
import java.io.InputStream ;
import java.io.ObjectInputStream ;
public class SerDemo05{
    public static void main(String args[]) throws Exception{
        Person per[] = {new Person("张三",30),new Person("李四",31),
            new Person("王五",32)} ;
        ser(per) ;
        Object o[] = (Object[])dser() ;
        for(int i=0;i<o.length;i++){
            Person p = (Person)o[i] ;
            System.out.println(p) ;
        }
    }
    public static void ser(Object obj[]) throws Exception {
        File f = new File("D:" + File.separator + "test.txt") ;    // 定义保存路径
        ObjectOutputStream oos = null ;    // 声明对象输出流
        OutputStream out = new FileOutputStream(f) ;    // 文件输出流
        oos = new ObjectOutputStream(out) ;
        oos.writeObject(obj) ;    // 保存对象
        oos.close() ;    // 关闭
    }
    public static Object[] dser() throws Exception {
        File f = new File("D:" + File.separator + "test.txt") ;    // 定义保存路径
        ObjectInputStream ois = null ;    // 声明对象输入流
        InputStream input = new FileInputStream(f) ;    // 文件输入流
        ois = new ObjectInputStream(input) ;    // 实例化对象输入流
        Object obj[] = (Object[])ois.readObject() ;    // 读取对象
        ois.close() ;    // 关闭
        return obj ;
    }
};