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流--对象流及对象序列化机制的理解的主要内容,如果未能解决你的问题,请参考以下文章

java IO流 对象流的使用

事件流及事件冒泡机制

一文带你理解对象流序列化机制

一文带你理解对象流序列化机制

Java中的IO流如何理解——精简

Java 序列化