Java对象序列化
2016-07-04 11:47
211 查看
最近在准备面试,复习java基础知识,记录一下Java对象的序列化:
Java对象的序列化:要想实现序列化,需要把被序列化的对象(类)实现Java.io.Serializable接口,配合FileOutputStream、FileInputStream、FileOutputStream、FileInputStream实现把对对象数据转换成二进制流存储到字旁的固定文件上,再把他读进来
代码演示:
package cn.com.test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class SerializableTest {
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
SerializableTest.Serialize();
SerializableTest.deSerialize();
}
public static void deSerialize() throws FileNotFoundException, IOException, ClassNotFoundException{
ObjectInputStream in = new ObjectInputStream(new FileInputStream("F:\\test.txt")) ;
//读取Hello
System.out.println((String)in.readObject());
//读取person
System.out.println((Person)in.readObject());
in.close();
}
public static void Serialize() throws FileNotFoundException, IOException{
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("F:\\test.txt")) ;
out.writeObject("Hello!");
out.writeObject(new Person("张剑飞", 22));
out.close() ;
}
}
@SuppressWarnings("serial")
class Person implements Serializable {
private String name ;
private int age ;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
Java对象的序列化:要想实现序列化,需要把被序列化的对象(类)实现Java.io.Serializable接口,配合FileOutputStream、FileInputStream、FileOutputStream、FileInputStream实现把对对象数据转换成二进制流存储到字旁的固定文件上,再把他读进来
代码演示:
package cn.com.test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class SerializableTest {
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
SerializableTest.Serialize();
SerializableTest.deSerialize();
}
public static void deSerialize() throws FileNotFoundException, IOException, ClassNotFoundException{
ObjectInputStream in = new ObjectInputStream(new FileInputStream("F:\\test.txt")) ;
//读取Hello
System.out.println((String)in.readObject());
//读取person
System.out.println((Person)in.readObject());
in.close();
}
public static void Serialize() throws FileNotFoundException, IOException{
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("F:\\test.txt")) ;
out.writeObject("Hello!");
out.writeObject(new Person("张剑飞", 22));
out.close() ;
}
}
@SuppressWarnings("serial")
class Person implements Serializable {
private String name ;
private int age ;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
相关文章推荐
- springMVC和spring上下文的关系
- Error when passing date to create solr date format.java.text.ParseException: Unparseable date: "We 4000 d
- [置顶] Java 多线程学习笔记(十) InheritableThreadLocal的使用
- jar 问题 : java.io.IOException: invalid header field
- Ubuntu16.04下面配置java环境变量
- Spring 事物的传播特性
- Ubuntu 16 eclipse 4打开后没有菜单栏的解决方法
- [改善Java代码]枚举项的数量限制在64个以内
- 消息总线——EventBus
- Java Web实战05--Spring之bean引用
- Spring MVC学习总结(6)——一些Spring MVC的使用技巧
- Spring MVC学习总结(6)——一些Spring MVC的使用技巧
- Spring MVC学习总结(6)——一些Spring MVC的使用技巧
- spring @Scheduled注解执行定时任务
- spring boot 使用velocity模板
- SpringMVC+Mybatis框架整合源码
- Java中String的用法
- 《Java编程思想》读书笔记
- SSH框架---Struts2+hibernate实现用户登录和增删改查案例
- Spring4 多种定时器详解