【Java开源代码栏目提醒】:网学会员为需要Java开源代码的朋友们搜集整理了TextSerializable.java相关资料,希望对各位网友有所帮助!
package com.zf.s10;//创建一个包
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Date;
public class TextSerializable {//序列化和反序列化对象
static class MyClass implements Serializable{//必须实现Serializable接口才能够被序列化和反序列化
private int a,b; // 一般的实例变量会被序列化和反序列化
private transient int c; // transient实例变量 不会 被序列化和反序列化
private static int d; // 类变量 不会 被序列化和反序列化
public MyClass(){
}
public MyClass(int a, int b, int c, int d){
this.a = a;
this.b = b;
this.c = c;
MyClass.d = d;
}
public String toString(){
return this.a + " " + this.b + " " + this.c + " " + MyClass.d;
}
}
public static void serialize(String fileName) throws Exception{//序列化对象到文件
// 创建一个对象输出流,将对象输出到文件
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(fileName));
out.writeObject("Today:"); // 序列化一个字符串对象到文件
out.writeObject(new Date());// 序列化当前日期对象到文件
MyClass my1 = new MyClass(5, 6, 7, 8);// 序列化一个MyClass对象
out.writeObject(my1);
out.close();
}
public static void deserialize(String fileName) throws Exception{//从文件反序列化到对象
// 创建一个对象输入流,从文件读取对象
ObjectInputStream in = new ObjectInputStream(new FileInputStream(fileName));
// 注意读对象时必须按照序列化对象时的顺序读,否则会出错
String today = (String)(in.readObject());// 读取字符串对象
System.out.println(today);
Date date = (Date)(in.readObject());// 读日期对象
System.out.println(date.toString());
MyClass my1 = (MyClass)(in.readObject());// 读MyClass对象,并调用它的add方法
System.out.println(my1.toString());
in.close();
}
public static void main(String[] args) throws Exception{//java程序主入口处
String fileName = "F:/poem.txt";
serialize(fileName);
// 注释掉第二行,只运行下面一行,将会发现输出不同
deserialize(fileName);
}
}
上一篇:
TextSeparatorFileAndDiv.java
下一篇:
让我掉下眼泪的