java序列化Serializable 学习入门
2009-08-27 15:44
330 查看
(一)序列化作用: 把内存中的对象转化为另一种形式,以供传输或存储。 (二)序列化前提: (1)要序列化对象必须是可序列化的,即必须实现 Serializable 接口。 (2)要序列化对象的属性也都是可序列化的。 (3)要序列化对象引用的对象也必须是可序列化的,如:要序列化一个 HashMap 实例,需要把放入到HashMap中的对象也都序列化。 (4)要序列化一个内部类,该内部类必须可序列化,并且外部类也必须可序列化。 (5)基本数据类型都是可以序列化的。 (三)序列化举例: 下面是一个User类,演示了把一个User实例写入文件,然后在再文件中读出。 百度空间代码显示比较差劲,请粘贴到eclipse中运行: import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; public class User implements Serializable{ private static final long serialVersionUID = 1L; String name; //姓名 int age; //年龄 public User(String name, int age) {//有参构造 this.name = name; this.age = age; } /** * @todo 将一个可以序列化的对象写入文件 * @param obj 要保存的对象 * @param fileName 目标文件 */ public void writeToFile(Object obj, String fileName) { try { FileOutputStream fos = new FileOutputStream(fileName); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(obj); oos.flush(); System.out.println("write ok"); } catch (Exception e) { e.printStackTrace(); } } /** * @param fileName 保存对象的文件 * @return 从文件中得到的对象 */ public Object getObjFromFile(String fileName) { Object obj =null; try { FileInputStream fis = new FileInputStream(fileName); ObjectInputStream ois = new ObjectInputStream(fis); obj= ois.readObject(); System.out.println("read ok"); } catch (Exception e) { e.printStackTrace(); } return obj; } public static void main(String[] args) { String fileName = "c://user.txt"; //保存对象的文件 User user = new User("yangzi",28); //创建一个User对象 user.writeToFile(user, fileName); //将对象写入文件 User u = (User)(user.getObjFromFile(fileName)); //从文件中取得对象 if(u!=null) System.out.println("get user from file ok,and name is : "+u.name); //输出对象名 } } |
相关文章推荐
- JavaSE入门学习46:文件传输基础之I/O流(五)(Java序列化)
- JavaSE入门学习46:文件传输基础之I/O流(五)(Java序列化)
- Java for Web学习笔记(八八):消息和集群(3)序列化Serializable
- Netty 快速入门系列 - Chapter 5 Netty之序列化【第十二讲】 Java Serializable
- 学习 java 序列化(Serializable )
- java 序列化学习笔记
- Java 入门后需要学习的一些知识点
- [转载]老篇常谈-Java学习从入门到精通
- Java嵌入式数据库H2学习总结(一)——H2数据库入门
- 【JAVA学习】序列化与反序列化
- 黑马程序员——入门 java语言学习六大要点
- 【百度文库课程】Java语言基础与OOP入门学习笔记一
- Java学习从入门到精通[转贴]
- 【Java学习笔记】对象的序列化和反序列化
- Java入门第二季-学习笔记
- java 从零开始,学习笔记之基础入门(开始)
- Java学习从入门到精通
- Java入门学习好书
- java序列化Protostuff和Serializable的区别