Java中的ObjectInputStream –从文件中读取对象

时间:2020-02-23 14:37:22  来源:igfitidea点击:

Java中的ObjectInputStream可用于将InputStream转换为对象。
将输入流转换为对象的过程称为反序列化。
在上一篇文章中,我们了解了ObjectOutputStream并将java对象转换为输出流并写入文件。
其中我们将读取相同的序列化文件以在Java中创建一个对象。

ObjectInputStream

ObjectInputStream是Java IO类的一部分。
目的是为我们提供一种将输入流转换为Java程序中的对象的方法。
ObjectInputStream构造函数将InputStream作为参数。
由于我们正在从文件读取序列化的对象,因此我们将使用FileInputStream和ObjectInputStream来从文件读取对象。

Java ObjectInputStream示例

java.io.ObjectInputStream readObject()用于将输入流读取到Object。
我们必须进行类转换以将Object转换为实际类。
下面是ObjectInputStream示例程序,用于从文件读取对象。

package com.theitroad.files;

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

public class ObjectInputStreamExample {

	public static void main(String[] args) {
		try {
			FileInputStream is = new FileInputStream("EmployeeObject.ser");
			ObjectInputStream ois = new ObjectInputStream(is);
			Employee emp = (Employee) ois.readObject();
			ois.close();
			is.close();
			System.out.println(emp.toString());
		} catch (ClassNotFoundException | IOException e) {
			e.printStackTrace();
		}
	}

}