用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

对象串行化 对象序列化

2013-01-20 作者: 海大软件1102班举报

[java]代码库

import java.io.*;

/*
 * SerializableObject.java
 *
 * Created on 2006年8月23日, 上午11:26
 *
 * 对象串行化
 *   对象通过写出描述自己状态的数值来记录自己,这个过程叫做对象串行化。对象的寿命通
 * 常是随着生成该对象的程序的终止而终止,在有些情况下,需要将对象的状态保存下来,然后
 * 在必要的时候将对象恢复,值得注意的是,如果变量是另一个对象的引用,则引用的对象也要
 * 串行化,串行化是一个递归的过程,可能会涉及到一个复杂树结构的串行化,比如包括原有对
 * 象,对象的对象等。
 *   在java.io包中,接口Serializable是实现对象串行化的工具,只有实现了Serializable
 * 的对象才可以被串行化。Serializable接口中没有任何的方法,当一个类声明实现Seriali-
 * zable接口时,只是表明该类遵循串行化协议,而不需要实现任何特殊的方法。
 *   在进行对象串行化时,需要注意将串行化的对象和输入、输出流联系起来,首先通过对
 * 象输出流将对象状态保存下来,然后通过对象输入流将对象状态恢复。
 */
class Book implements Serializable {
	String isbn;
	String name;
	int page;
	String type;

	public Book(String isbn, String name, int page, String type) {
		this.isbn = isbn;
		this.name = name;
		this.page = page;
		this.type = type;
	}
}

public class SerializableObject implements Serializable {
	public static void main(String[] args) throws IOException,
			ClassNotFoundException {
		Book bookObj = new Book("7-02-016450-1", "Java", 218, "programming");
		FileOutputStream fileOStream = new FileOutputStream("temp.ser");
		ObjectOutputStream objOutStream = new ObjectOutputStream(fileOStream);
		try {
			objOutStream.writeObject(bookObj);
			objOutStream.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		bookObj = null;
		FileInputStream fileInStream = new FileInputStream("temp.ser");
		ObjectInputStream objInStream = new ObjectInputStream(fileInStream);
		try {
			bookObj = (Book) objInStream.readObject();
			objInStream.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		System.out.println("------------------------------------------------");
		System.out.println("There are information about book:");
		System.out.println("ISBN Number: " + bookObj.isbn);
		System.out.println("Book Name: " + bookObj.name);
		System.out.println("Book Page: " + bookObj.page);
		System.out.println("Book Type: " + bookObj.type);
	}
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...