Java Exercise
In this exercise, you will create a Java program that demonstrates the use of **Streams and Serialization** to save and retrieve objects from a file. You will implement a serializable Person class, allowing you to store its data in a file using **ObjectOutputStream** and retrieve it using **ObjectInputStream**. This technique is fundamental to data persistence in Java applications.
Instructions:
- Create a class named
Person with attributes such as name and age, implementing the Serializable interface.
- Implement a method to **save an object** of type
Person to a file using **ObjectOutputStream**.
- Implement another method to **read the object** from the file using **ObjectInputStream**.
- In the
main method, create a Person object, save it to a file, and then retrieve it to display its data.
This exercise will help you understand how **Streams and Serialization** enable efficient data handling in Java applications. facilitating the storage and retrieval of information in files.
View Example Code
import java.io.*;
// Person class implementing Serializable
class Person implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void displayData() {
System.out.println("Name: " + name + ", Age: " + age);
}
}
public class SerializationDemo {
public static void main(String[] args) {
String file = "person.dat";
// Create a Person object
Person person = new Person("John", 30);
// Serialize the object and save it to a file
try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file))) {
out.writeObject(person);
System.out.println("Person object serialized successfully.");
} catch (IOException e) {
e.printStackTrace();
}
// Deserialize the object and read it from the file
try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(file))) {
Person deserializedPerson = (Person) in.readObject();
System.out.println("Person object deserialized:");
deserializedPerson.displayData();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
Output:
Successfully serialized Person object.
Deserialized Person object:
Name: John, Age: 30
This program demonstrates how to work with files in Java using the File, FileReader, and FileWriter classes. First, a file named example.txt is created, written to using FileWriter, and then the contents are read using FileReader. When the program is run, the file contents are displayed in the console, providing an understanding of how to perform basic file input/output operations in Java.