[Java] 对象串行化 对象序列化 →→→→→进入此内容的聊天室

来自 , 2020-03-29, 写在 Java, 查看 143 次.
URL http://www.code666.cn/view/53e3a716
  1. import java.io.*;
  2.  
  3. /*
  4.  * SerializableObject.java
  5.  *
  6.  * Created on 2006年8月23日, 上午11:26
  7.  *
  8.  * 对象串行化
  9.  *   对象通过写出描述自己状态的数值来记录自己,这个过程叫做对象串行化。对象的寿命通
  10.  * 常是随着生成该对象的程序的终止而终止,在有些情况下,需要将对象的状态保存下来,然后
  11.  * 在必要的时候将对象恢复,值得注意的是,如果变量是另一个对象的引用,则引用的对象也要
  12.  * 串行化,串行化是一个递归的过程,可能会涉及到一个复杂树结构的串行化,比如包括原有对
  13.  * 象,对象的对象等。
  14.  *   在java.io包中,接口Serializable是实现对象串行化的工具,只有实现了Serializable
  15.  * 的对象才可以被串行化。Serializable接口中没有任何的方法,当一个类声明实现Seriali-
  16.  * zable接口时,只是表明该类遵循串行化协议,而不需要实现任何特殊的方法。
  17.  *   在进行对象串行化时,需要注意将串行化的对象和输入、输出流联系起来,首先通过对
  18.  * 象输出流将对象状态保存下来,然后通过对象输入流将对象状态恢复。
  19.  */
  20. class Book implements Serializable {
  21.         String isbn;
  22.         String name;
  23.         int page;
  24.         String type;
  25.  
  26.         public Book(String isbn, String name, int page, String type) {
  27.                 this.isbn = isbn;
  28.                 this.name = name;
  29.                 this.page = page;
  30.                 this.type = type;
  31.         }
  32. }
  33.  
  34. public class SerializableObject implements Serializable {
  35.         public static void main(String[] args) throws IOException,
  36.                         ClassNotFoundException {
  37.                 Book bookObj = new Book("7-02-016450-1", "Java", 218, "programming");
  38.                 FileOutputStream fileOStream = new FileOutputStream("temp.ser");
  39.                 ObjectOutputStream objOutStream = new ObjectOutputStream(fileOStream);
  40.                 try {
  41.                         objOutStream.writeObject(bookObj);
  42.                         objOutStream.close();
  43.                 } catch (IOException e) {
  44.                         e.printStackTrace();
  45.                 }
  46.                 bookObj = null;
  47.                 FileInputStream fileInStream = new FileInputStream("temp.ser");
  48.                 ObjectInputStream objInStream = new ObjectInputStream(fileInStream);
  49.                 try {
  50.                         bookObj = (Book) objInStream.readObject();
  51.                         objInStream.close();
  52.                 } catch (IOException e) {
  53.                         e.printStackTrace();
  54.                 }
  55.                 System.out.println("------------------------------------------------");
  56.                 System.out.println("There are information about book:");
  57.                 System.out.println("ISBN Number: " + bookObj.isbn);
  58.                 System.out.println("Book Name: " + bookObj.name);
  59.                 System.out.println("Book Page: " + bookObj.page);
  60.                 System.out.println("Book Type: " + bookObj.type);
  61.         }
  62. }

回复 "对象串行化 对象序列化"

这儿你可以回复上面这条便签

captcha