六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 67|回复: 0

序列化心得

[复制链接]

升级  68%

8

主题

8

主题

8

主题

童生

Rank: 1

积分
34
 楼主| 发表于 2013-1-15 02:58:04 | 显示全部楼层 |阅读模式
package SerializeDemo;import java.io.*;public class Fruit  implements Serializable {int size = 42;Fruit(String s) {System.out.println("fruit...");}Fruit() {System.out.println("fruit...");}}package SerializeDemo;import java.io.*;public class Apple extends Fruit{int as = 3;private transient String s = "I'm not serializable..." ;public Apple() {//super("aa");System.out.println("the as is :" + as);}public void writeObject(ObjectOutputStream os) {try {os.defaultWriteObject();os.writeObject(s);} catch (IOException e) {e.printStackTrace();}System.out.println("invoke the writeObject...");}public void readObject(ObjectInputStream os) {System.out.println("invoke the readObject...");try {os.defaultReadObject();//s = (String)os.readObject();} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}}public Apple readApple(FileInputStream is) {Apple a = null;try {ObjectInputStream ois = new ObjectInputStream(is);a = (Apple)ois.readObject();ois.close();}catch(Exception e) {e.printStackTrace();}return a;}public void saveApple(FileOutputStream os,Object obj) {try {ObjectOutputStream oos = new ObjectOutputStream(os);oos.writeObject(obj);oos.close();}catch(Exception e) {e.printStackTrace();}}public static void main(String[] args) {try {FileOutputStream fos = new FileOutputStream("Apple.txt");FileInputStream fis = new FileInputStream("Apple.txt");Apple a = new Apple();a.size = 20;  //super original 42a.as = 20;a.saveApple(fos, a);Apple b = a.readApple(fis);//System.out.println("b.size is:"+b.size+"\tb.as is:"+b.as);System.out.println("b.size is:"+b.size+"\tb.as is:"+b.as+"\tb.food is:"+b.s);}catch(Exception e) {e.printStackTrace();}}}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表