将对象序列化
package com.cvicse.io.demo;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/**
* 对象序列化:将保存到内存对象数据转换为二进制数据流传输的操作 ObjectInputStream ObjectOutputStream
* 对象输入流,对象输出流
*
* @author 13169
*
*/
//此类对象可以被序列化
class Book implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
//private transient String title; 加上transient 关键字表示此属性不能被序列化
private String title;
private double price;
public Book() {
}
public Book(String title, double price) {
this.title = title;
this.price = price;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "Book [title=" + title + ", price=" + price + "]";
}
}
public class SerializableDemo {
public static void main(String[] args) throws Exception {
ser();
dser();
}
/**
* 序列化 将对象序列化到文件中
*/
public static void ser() throws Exception {
ObjectOutputStream oos = new ObjectOutputStream(
new FileOutputStream(new File("E:" + File.separator + "IODemo" + File.separator + "book.ser")));
oos.writeObject(new Book("Java 編程思想", 102.9));
oos.close();
}
/**
* 反序列化 将对象从文件中反序列化到程序中
*/
public static void dser() throws FileNotFoundException, IOException, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(
new FileInputStream(new File("E:" + File.separator + "IODemo" + File.separator + "book.ser")));
Object book = ois.readObject();
System.out.println(book);
ois.close();
}
}