IO

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IO 相关的知识,希望对你有一定的参考价值。

1 序列化和反序列化

1.1 ObjectOutputStream 序列化

1.1.1 概述

  • ObjectOutputStream将Java对象的基本数据写入OutputStream,可以使用ObjectInputStream读取对象。
  • 通过在流中使用文件可以实现对象的持久存储。
  • 如果流是Socket,则可以在另一台主机上火另一个进程中重构对象。

 

1.1.2 构造方法

  • 创建写入指定OutputStream的ObjectOutputStream
public ObjectOutputStream(OutputStream out)  throws IOException

 

1.1.3 方法

  • 将指定对象写入ObjectOutputStream
public final void writeObject(Object obj) throws IOException

 

1.2 ObjectInputStream 反序列化

1.2.1 概述

  • ObjectInputStream对以前使用ObjectOutputStream写入的基本数据和对象进行反序列化。

 

1.2.2 构造方法

  • 创建从指定InputStream读取的ObjectInputStream
public ObjectInputStream(InputStream in) throws IOException

 

1.2.3 方法

  • 从ObjectInputStream中读取对象
public final Object readObject()  throws IOException, ClassNotFoundException

 

1.3 示例

  • 示例:序列化对象
package java20;

import java.io.Serializable;

/**
 * 2017/10/15
 * 说明:
 */
public class Person implements Serializable {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
package java20;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

/**
 * 2017/10/15
 * 说明:
 */
public class ObjectOutputStreamDemo {
    public static void main(String[] args) throws IOException {
        ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("person.txt"));

        os.writeObject(new Person("张三",50));

        os.close();

    }
}

 

  • 示例:反序列化
package java20;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

/**
 * 2017/10/15
 * 说明:
 */
public class ObjectInputStreamDemo {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        ObjectInputStream oi = new ObjectInputStream(new FileInputStream("person.txt"));

        Person p = (Person) oi.readObject();

        System.out.println(p.getName());
        System.out.println(p.getAge());

    }
}

 

以上是关于IO 的主要内容,如果未能解决你的问题,请参考以下文章

csharp C#代码片段 - 使类成为Singleton模式。 (C#4.0+)https://heiswayi.github.io/2016/simple-singleton-pattern-us

golang代码片段(摘抄)

为啥这段代码会泄露? (简单的代码片段)

PHP代码-psysh调试代码片段工具

C# 获得目录创建时间的源码片段

java.io.ByteArrayInputStream