Ilias Tsagklis

About Ilias Tsagklis

Ilias Tsagklis is a senior software engineer working in the telecom domain. He is an applications developer in a wide variety of applications/services. Ilias is co-founder and Executive Editor at Java Code Geeks.

How to Read an Object from File in Java

In the previous tutorial we saw how to write an Object to a file in Java. In this example we are going to see how to read an Object from the file that we’ve stored it earlier.

Basically, to read an Object from a file, one should follow these steps:

  • Open a FileInputStream to the file that you’ve stored the Object to.
  • Open a ObjectInputStream to the above FileInpoutStream.
  • Use readObject method of ObjectInputStream class to read the Object from the file.
  • The above method returns an Object of type Object. So you have to cast it to the original type to use it properly.

Let’s see the code snippets that follow:
Student.java

package com.javacodegeeks.java.core;

import java.io.Serializable;

public class Student implements Serializable {

	//default serialVersion id
	private static final long serialVersionUID = 1L;

	private String first_name;
	private String last_name;
	private int age;

	public Student(String fname, String lname, int age){
		this.first_name = fname;
		this.last_name  = lname;
		this.age        = age;
	}

	public void setFirstName(String fname) {
		this.first_name = fname;
	}

	public String getFirstName() {
		return this.first_name;
	}

	public void setLastName(String lname) {
		this.first_name = lname;
	}

	public String getLastName() {
		return this.last_name;
	}

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

	public int getAge() {
		return this.age;
	}

	@Override
	public String toString() {
		return new StringBuffer(" First Name : ").append(this.first_name)
				.append(", Last Name : ").append(this.last_name).append(", Age : ").append(this.age).toString();
	}

}

ObjectIOExample.java

package com.javacodegeeks.java.core;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class ObjectIOExample {

	private static final String filepath="C:\\Users\\nikos7\\Desktop\\obj";

	public static void main(String args[]) {

		ObjectIOExample objectIO = new ObjectIOExample();

		//Read object from file
		Student st = (Student) objectIO.ReadObjectFromFile(filepath);
		System.out.println(st);
	}

	public Object ReadObjectFromFile(String filepath) {

		try {

			FileInputStream fileIn = new FileInputStream(filepath);
			ObjectInputStream objectIn = new ObjectInputStream(fileIn);

			Object obj = objectIn.readObject();

			System.out.println("The Object has been read from the file");
			objectIn.close();
			return obj;

		} catch (Exception ex) {
			ex.printStackTrace();
			return null;
		}
	}
}

Output

The Object has been read from the file
 First Name : John, Last Name : Frost, Age : 22

Here is the code of the complete Read/Write Object From/To File interface in Java:

Student.java

package com.javacodegeeks.java.core;

import java.io.Serializable;

public class Student implements Serializable {

	//default serialVersion id
	private static final long serialVersionUID = 1L;

	private String first_name;
	private String last_name;
	private int age;

	public Student(String fname, String lname, int age){
		this.first_name = fname;
		this.last_name  = lname;
		this.age        = age;
	}

	public void setFirstName(String fname) {
		this.first_name = fname;
	}

	public String getFirstName() {
		return this.first_name;
	}

	public void setLastName(String lname) {
		this.first_name = lname;
	}

	public String getLastName() {
		return this.last_name;
	}

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

	public int getAge() {
		return this.age;
	}

	@Override
	public String toString() {
		return new StringBuffer(" First Name : ").append(this.first_name)
				.append(", Last Name : ").append(this.last_name).append(", Age : ").append(this.age).toString();
	}

}

ObjectIOExample.java

package com.javacodegeeks.java.core;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class ObjectIOExample {

	private static final String filepath="C:\\Users\\nikos7\\Desktop\\obj";

	public static void main(String args[]) {

		ObjectIOExample objectIO = new ObjectIOExample();

		Student student = new Student("John","Frost",22);
		objectIO.WriteObjectToFile(filepath, student);

		//Read object from file
		Student st = (Student) objectIO.ReadObjectFromFile(filepath);
		System.out.println(st);
	}

	public void WriteObjectToFile(String filepath,Object serObj) {

		try {

			FileOutputStream fileOut = new FileOutputStream(filepath);
			ObjectOutputStream objectOut = new ObjectOutputStream(fileOut);
			objectOut.writeObject(serObj);
			objectOut.close();
			System.out.println("The Object  was succesfully written to a file");

		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	public Object ReadObjectFromFile(String filepath) {

		try {

			FileInputStream fileIn = new FileInputStream(filepath);
			ObjectInputStream objectIn = new ObjectInputStream(fileIn);

			Object obj = objectIn.readObject();

			System.out.println("The Object has been read from the file");
			objectIn.close();
			return obj;

		} catch (Exception ex) {
			ex.printStackTrace();
			return null;
		}
	}
}

Output

The Object  was succesfully written to a file
The Object has been read from the file
 First Name : John, Last Name : Frost, Age : 22

 
This was an example on how to Read an Object from File in Java

Related Whitepaper:

Java Essential Training

Author David Gassner explores Java SE (Standard Edition), the language used to build mobile apps for Android devices, enterprise server applications, and more!

The course demonstrates how to install both Java and the Eclipse IDE and dives into the particulars of programming. The course also explains the fundamentals of Java, from creating simple variables, assigning values, and declaring methods to working with strings, arrays, and subclasses; reading and writing to text files; and implementing object oriented programming concepts. Exercise files are included with the course.

Get it Now!  

Examples Java Code Geeks and all content copyright © 2010-2014, Exelixis Media Ltd | Terms of Use | Privacy Policy
All trademarks and registered trademarks appearing on Examples Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Examples Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.

Sign up for our Newsletter

20,709 insiders are already enjoying weekly updates and complimentary whitepapers! Join them now to gain exclusive access to the latest news in the Java world, as well as insights about Android, Scala, Groovy and other related technologies.

As an extra bonus, by joining you will get our brand new e-books, published by Java Code Geeks and their JCG partners for your reading pleasure! Enter your info and stay on top of things,

  • Fresh trends
  • Cases and examples
  • Research and insights
  • Two complimentary e-books