Java IO流--对象流及对象序列化机制的理解
Posted 路宇_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java IO流--对象流及对象序列化机制的理解相关的知识,希望对你有一定的参考价值。
对象序列化机制:
允许把内存中的java对象转换成平台无关的二进制流,从而允许把这种二进制流永久的保存到磁盘上,或通过网络将这种二进制流传输到另一个网络节点。(序列化)
当其他程序获取了这种二进制流,就可以恢复成原来的java对象。(反序列化)
序列化
- 用ObjectOutputStream类保存基本数据类型或对象的机制
反序列化
- 用ObjectInputStream类读取基本数据类型或对象的机制
对象流的使用:ObjectOutputStream和ObjectInputStream
/**
* 序列化过程:将内存中的java对象保存到磁盘中或通过网络传输出去
* 使用ObjectOutputStream实现
*/
@Test
public void test1(){
ObjectOutputStream oos = null;
try {
//造文件和处理流
oos = new ObjectOutputStream(new FileOutputStream("object.dat"));
//把数据写出到磁盘中
oos.writeObject("程序员");
oos.flush();//刷新操作
}catch (Exception e){
e.printStackTrace();
}finally {
if (oos!=null){
//关闭资源
try {
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 反序列化过程:将磁盘文件中的对象还原为内存中的一个java对象
* 使用ObjectInputStream实现
*/
@Test
public void test2(){
ObjectInputStream ois=null;
try {
//造文件和对象流
ois = new ObjectInputStream(new FileInputStream("object.dat"));
//把数据读入到内存中
Object oj = ois.readObject();
String s = (String) oj;
System.out.println(s);
}catch (Exception e){
e.printStackTrace();
}finally {
if (ois!=null){
try {
ois.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
以上是关于Java IO流--对象流及对象序列化机制的理解的主要内容,如果未能解决你的问题,请参考以下文章