zoukankan      html  css  js  c++  java
  • Java object serialization

     

    Java object serialization

    This tutorial explains how to use Java serialization and de-serialization

     

    1. Java Serialization

    Via Java Serialization you can stream your Java object to a sequence of byte and restore these objects from this stream of bytes. To make a Java object serializable you implement the java.io.Serializable interface. This is only a marker interface which tells the Java platform that the object is serializable.

    Certain system-level classes such as ThreadOutputStream and its subclasses, and Socket are not serializable. If you serializable class contains such objects, it must mark then as "transient".

     

    2. Example

    Create a Java project called "de.vogella.java.serilization". Create the following Java object called Person.

     
    
    package de.vogella.java.serilization;
    
    import java.io.Serializable;
    
    public class Person implements Serializable {
      private String firstName;
      private String lastName;
      // stupid example for transient
      transient private Thread myThread;
    
      public Person(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.myThread = new Thread();
      }
    
      public String getFirstName() {
        return firstName;
      }
    
      public void setFirstName(String firstName) {
        this.firstName = firstName;
      }
    
      public String getLastName() {
        return lastName;
      }
    
      public void setLastName(String lastName) {
        this.lastName = lastName;
      }
    
      @Override
      public String toString() {
        return "Person [firstName=" + firstName + ", lastName=" + lastName
            + "]";
      }
    
    } 
     
    

      

    The following code example show you how you can serializable and de-serializable this object.

    package de.vogella.java.serilization;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    
    public class Main {
      public static void main(String[] args) {
        String filename = "time.ser";
        Person p = new Person("Lars", "Vogel");
    
        // save the object to file
        FileOutputStream fos = null;
        ObjectOutputStream out = null;
        try {
          fos = new FileOutputStream(filename);
          out = new ObjectOutputStream(fos);
          out.writeObject(p);
    
          out.close();
        } catch (Exception ex) {
          ex.printStackTrace();
        }
        // read the object from file
        // save the object to file
        FileInputStream fis = null;
        ObjectInputStream in = null;
        try {
          fis = new FileInputStream(filename);
          in = new ObjectInputStream(fis);
          p = (Person) in.readObject();
          in.close();
        } catch (Exception ex) {
          ex.printStackTrace();
        }
        System.out.println(p);
      }
    } 
    

      

  • 相关阅读:
    SoapUI 使用笔记
    git 使用笔记(二)
    git 使用笔记(一)
    jquery 拓展
    hdu 1024 Max Sum Plus Plus (DP)
    hdu 2602 Bone Collector (01背包)
    hdu 1688 Sightseeing (最短路径)
    hdu 3191 How Many Paths Are There (次短路径数)
    hdu 2722 Here We Go(relians) Again (最短路径)
    hdu 1596 find the safest road (最短路径)
  • 原文地址:https://www.cnblogs.com/hephec/p/4580005.html
Copyright © 2011-2022 走看看