Skip to main content

Java Exception Handling MCQ Test

  Loading…

Object Streams

 Object streams in Java are used to serialize and deserialize objects, allowing them to be written to and read from streams. Here are some notes and examples on object streams:


1. Object Streams:

   - Object streams allow for the serialization and deserialization of Java objects.

   - They provide a convenient way to persist Java objects to files or transmit them over networks.


2. ObjectInputStream and ObjectOutputStream:

   - `ObjectInputStream` and `ObjectOutputStream` are classes in Java used for reading and writing objects to streams.

   - These classes wrap byte streams and provide methods like `readObject()` and `writeObject()`.


   Example (Writing Objects to ObjectOutputStream):

   import java.io.*;


   public class ObjectOutputStreamExample {

       public static void main(String[] args) throws IOException {

           ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("objects.ser"));

           Person person = new Person("John", 30);

           oos.writeObject(person);

           oos.close();

       }

   }



   Example (Reading Objects from ObjectInputStream):


   import java.io.*;


   public class ObjectInputStreamExample {

       public static void main(String[] args) throws IOException, ClassNotFoundException {

           ObjectInputStream ois = new ObjectInputStream(new FileInputStream("objects.ser"));

           Person person = (Person) ois.readObject();

           ois.close();

           System.out.println("Name: " + person.getName());

           System.out.println("Age: " + person.getAge());

       }

   }



   Explanation:

   - In the first example, we create a `Person` object and write it to an `ObjectOutputStream`.

   - In the second example, we read the `Person` object back from the `ObjectInputStream` and print its attributes.


3. Serializable Interface:

   - For an object to be serialized, its class must implement the `Serializable` interface.

   - This interface is a marker interface that indicates the object is serializable.


   Example (Serializable Class):


   import java.io.Serializable;

   public class Person implements Serializable {

       private String name;

       private int age;


       public Person(String name, int age) {

           this.name = name;

           this.age = age;

       }


       // Getters and setters

       // ...

   }


   Explanation:

   - The `Person` class implements the `Serializable` interface, allowing its objects to be serialized.


These examples demonstrate how to use `ObjectInputStream` and `ObjectOutputStream` to serialize and deserialize objects in Java. They provide a powerful mechanism for handling complex data structures and persisting application state.

Comments

Popular posts from this blog

Passing and Returning Objects in Java Methods

Passing and Returning Objects in Java Methods In Java, objects can be passed as parameters to methods and returned from methods just like other primitive data types. This allows for flexibility and the manipulation of object state within methods. Let's explore how passing and returning objects work in Java. Passing Objects as Parameters When you pass an object as a parameter to a method, you are essentially passing a reference to that object. This means that changes made to the object inside the method will affect the original object outside the method.  Example: class Car {     String model;     Car(String model) {         this.model = model;     } } public class CarProcessor {     // Method to modify the Car object     static void modifyCar(Car car, String newModel) {         car.model = newModel;     }     public static void main(String[] args) {       ...

Why is String[] args necessary in main() method in Java?

  Why is String[] args necessary in main() method in Java? In Java, the main method serves as the entry point for the program. The correct syntax for the main method is: public static void main (String[] args) { System.out.println( "Hello, Java!" ); } 🔹 Breaking it down: public → Accessible from anywhere. static → No need to create an object of the class to run it. void → No return value. main → Special method recognized by the JVM as the starting point. String[] args → Stores command-line arguments (optional but required by JVM). Why Can't We Skip String[] args ? JVM looks for main(String[] args) When you run a Java program, the JVM searches for the main method with exactly this signature : public static void main (String[] args) If you change or remove String[] args , the JVM cannot find the correct main() method and throws a runtime error (NoSuchMethodError). Java Specification Requires It The Java Language Specification (JLS) defines that main...