java serializable demo
来源:互联网 发布:选装修公司 知乎 编辑:程序博客网 时间:2024/06/05 10:45
对象序列化的目标是将对象保存在磁盘中,或者允许在网络中直接传输对象。对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久的保存在磁盘上或者通过网络将之传送到另一个网络节点。
而一旦其他程序获得这种二进制流,即可将之恢复为Java对象。
package com.serializabledemo;
import java.io.Serializable;
/**
* 要序列化实体类
* @author jianhai.zhuo
*
*/
public class Person implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String name;
private String address;
private int age;
public Person() {
}
public Person(String name,String address,int age) {
this.name = name;
this.address = address;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "姓名:"+name+"\n地址:"+address+"\n年龄"+age;
}
}
-------------------------------------------------------------------------------------------------------------------------------
package com.serializabledemo;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author jianhai.zhuo
* 测试 序列化和反序列化类
*
*/
public class TestSerializable {
static List<Person> personArray = new ArrayList<Person>();
static Person person = null;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=0;i<5;i++){
person = new Person();
person.setAddress("jiangsu province");
person.setName("smartly boy");
person.setAge(23+i);
personArray.add(person);
}
serializableMethod(personArray);
List<Person> de = new ArrayList<Person>();
de = deSerializableMethod();
for(Person person :de){
System.out.println(person.getAge());
System.out.println(person.getName());
System.out.println(person.getAddress());
}
}
/**
*
* @param personArray2
* 把对象序列化后保存到本地磁盘中
*/
public static void serializableMethod(List<Person> personArray2){
try{
File file = new File("d:"+File.separator+"serializable.txt");
OutputStream out = new FileOutputStream(file);
ObjectOutputStream oos = null;
oos = new ObjectOutputStream(out);
oos.writeObject(personArray2);
oos.flush();
oos.close();
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 从本地磁盘中 反序列化对象
* @return
*/
@SuppressWarnings("unchecked")
public static List<Person> deSerializableMethod(){
List<Person> objectArray = new ArrayList<Person>();
try{
File file = new File("d:"+File.separator+"serializable.txt");
InputStream in = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(in);
objectArray = ((List<Person>) ois.readObject());
ois.close();
}catch(Exception e){
e.printStackTrace();
}
return objectArray;
}
}
-----------------------------------test result is -------------------------------------------------
23
smartly boy
jiangsu province
24
smartly boy
jiangsu province
25
smartly boy
jiangsu province
26
smartly boy
jiangsu province
27
smartly boy
jiangsu province
- java serializable demo
- Java Serializable
- java Serializable
- java - Serializable
- Java Serializable
- java serializable
- java serializable
- java Serializable
- Java Serializable
- Java serializable
- java Serializable
- Java Serializable
- Java serializable
- Java Serializable
- Java Serializable
- java--Serializable
- Serializable 接口–java.io.serializable
- Serializable 接口–java.io.serializable
- ORA-12560: TNS: 协议适配器错误的解决方法
- ubuntu下安装Qt4的mysql驱动
- Android移植ffmpeg.so实现屏幕录制功能(下)
- make menuconfig配置文件解析
- 代理
- java serializable demo
- ofstream写、ifstream读
- Linux内核启动过程分析
- 在android中如何实现在应用首页按两次返回键(back)退出应用
- 十七周 被墨水污染的数字
- Linux引导过程内幕
- 双系统如何正确的删除Ubuntu
- PhoneGap(Cordova)之js调用本地native的方法 2
- 基于梯度调整的矩不变自动阈值图像分割算法