java 序列化是干什么的?

来源:互联网 发布:沈阳seo外包公司 编辑:程序博客网 时间:2024/05/27 01:39

什么是序列化?

序列化是将对象转换IO流,进行存储,或者在网络中传输。

与之相反的是反序列化,它是将IO流转换成对象。

package learn;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;//序列化和反序列化public class Serializ{   public static void main(String[] args) throws IOException, ClassNotFoundException {      //序列化      File f = new File("user");      f.createNewFile();      FileOutputStream fos = new FileOutputStream(f);      ObjectOutputStream ous = new ObjectOutputStream(fos);      User user = new User("feng",25);      ous.writeObject(user);      ous.close();      System.out.println("序列化成功");      //反序列化      System.out.println("反序列化得到结果");      File ff = new File("user");      FileInputStream fis = new FileInputStream(ff);      ObjectInputStream ois = new ObjectInputStream(fis);      User u = (User)ois.readObject();      System.out.println(u.getName()+" "+u.getAge());   }}class User implements Serializable{   String name;   int age;   public User(String name,int age) {      this.name = name;      this.age = age;   }   public User(){}   public String getName() {      return name;   }   public void setName(String name) {      this.name = name;   }   public int getAge() {      return age;   }   public void setAge(int age) {      this.age = age;   }   }

运行结果


当要序列化的对象没有实现Serializable接口时会报java.io.NotSerializableException异常

原创粉丝点击