举例说明什么是JAVA序列化
2010-06-18 14:33
661 查看
首先来看看要序列化的对象
再来看看测试代码:
System.out.println(p.getName());
System.out.println(p.getPassword());
System.out.println(p.getAddress());
in.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
程序输出如下:
03058661
陈建泉
************
Hangzhou,Zhejiang
从结果中可以看出,对象被正确的序列化到Serializable.dll文件中,并且可以被反序列化,这是一个简单的序列化例子。
Person.java package com.zjut.yunfeiyang; import java.io.Serializable; public class Person implements Serializable{ private static final long serialVersionUID = -5434734211562785652L; public Person() { } private String name; private String password; private String id; private String address; /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @return the password */ public String getPassword() { return password; } /** * @param password the password to set */ public void setPassword(String password) { this.password = password; } /** * @return the id */ public String getId() { return id; } /** * @param id the id to set */ public void setId(String id) { this.id = id; } /** * @param address the address to set */ public void setAddress(String address) { this.address = address; } /** * @return the address */ public String getAddress() { return address; } }
再来看看测试代码:
Test.java package com.zjut.yunfeiyang; 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; public class Test { public Test() { } /** * @param args */ public static void main(String[] args) { Person s=new Person(); s.setId("03058661"); s.setName("陈建泉"); s.setPassword("************"); s.setAddress("Hangzhou,Zhejiang"); File f=new File("Serializable.dll"); if(!f.exists()) { try { f.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } try { //执行序列化 ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(f)); out.writeObject(s); out.close(); s=null; //执行反序列化 ObjectInputStream in=new ObjectInputStream(new FileInputStream(f)); Person p=(Person)in.readObject(); System.out.println(p.getId());
System.out.println(p.getName());
System.out.println(p.getPassword());
System.out.println(p.getAddress());
in.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
程序输出如下:
03058661
陈建泉
************
Hangzhou,Zhejiang
从结果中可以看出,对象被正确的序列化到Serializable.dll文件中,并且可以被反序列化,这是一个简单的序列化例子。
相关文章推荐
- java中TreeMap有什么用,举例说明?
- java中Comparator有什么用,举例说明?
- java中Super到底是什么意思?必须举例说明!
- java中抽象类和抽象方法到底什么关系?请举例说明!
- java中Iterator有什么用,举例说明?
- java中Super到底是什么意思?必须举例说明!
- java中的工厂模式是什么,请举例说明
- 【Java面试题】25 同步和异步有何异同,在什么情况下分别使用他们?举例说明。
- java中ArrayList有什么用,举例说明?
- java开发线程篇3:同步和异步有何异同,在什么情况下分别使用他们?举例说明。
- java中downcast向下转型到底有什么用? 举例说明!
- java中Arrays有什么用,举例说明?
- java中HashSet有什么用,举例说明?
- 什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用
- java重载时自动转换咋回事?举例说明
- 请说明Java中字符'\'的含义,有什么作用?
- 使用设计模式,到底有什么好处?举例说明
- 同步和异步有何异同,什么场景使用,举例说明!
- 什么是Java序列化?为什么序列化?序列化有哪些方式?
- java String 缓冲池概念的举例说明(面试题)