Java object serialization - Tutorial
2015-06-16 10:04
501 查看
Java object serialization
This tutorial explains how to use Java serialization and de-serializationTable of Contents
1. Java Serialization2. Example3. About this website3.1.4. Links and Literature
1. Java Serialization
Via Java Serialization you can stream your Java object to a sequence of byte and restore these objects from this stream of bytes. To make a Java object serializable you implement thejava.io.Serializableinterface. This is only a marker interface which tells the Java platform that the object is serializable.
Certain system-level classes such as
Thread,
OutputStreamand its subclasses, and
Socketare not serializable. If you serializable class contains such objects, it must mark then as "transient".
2. Example
Create a Java project called "de.vogella.java.serilization". Create the following Java object called Person.package de.vogella.java.serilization; import java.io.Serializable; public class Person implements Serializable { private String firstName; private String lastName; // stupid example for transient transient private Thread myThread; public Person(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; this.myThread = new Thread(); } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } @Override public String toString() { return "Person [firstName=" + firstName + ", lastName=" + lastName + "]"; } }
The following code example show you how you can serializable and de-serializable this object.
package de.vogella.java.serilization; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class Main { public static void main(String[] args) { String filename = "time.ser"; Person p = new Person("Lars", "Vogel"); // save the object to file FileOutputStream fos = null; ObjectOutputStream out = null; try { fos = new FileOutputStream(filename); out = new ObjectOutputStream(fos); out.writeObject(p); out.close(); } catch (Exception ex) { ex.printStackTrace(); } // read the object from file // save the object to file FileInputStream fis = null; ObjectInputStream in = null; try { fis = new FileInputStream(filename); in = new ObjectInputStream(fis); p = (Person) in.readObject(); in.close(); } catch (Exception ex) { ex.printStackTrace(); } System.out.println(p); } }
相关文章推荐
- Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
- Object-C-Foundation-反射
- Objective-C可变参数的函数实现
- j2se学习笔记-java.lang中的object类
- NSObject学习
- Objective-c 创建类的使用
- Java-Object的clone方法 protected的相关问题。
- [Object-C]iOS 形参个数可变的方法
- objective-c的成员变量:坑爹的苹果不断更新版本使得代码变化也大。
- Objective-C 关于锁的种类
- swift 和 Objective-C 互相调用
- Programming with Objective-C 学习笔记
- iPhone/iOS中保存自定义对象(Custom Object/Custom Class)的数组(NSMutableArray/NSArray)到NSUserDefaults
- object-C与JAVA和C++对比
- Objective-C Method Swizzling 的最佳实践
- JSONObject与JSONArray的使用
- objective c 类目 延展 协议
- Objective-C类成员变量深度剖析
- Objective-C Method Swizzling 的最佳实践
- 学习笔记(objective-c)-类别(category)