Introduction to Object Serialization in Java part-2

    0
    28
    Spread the love
    • 1
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
      1
      Share

    Hope you liked my first post on object  serialization  https://www.techtravelhub.com/2012/01/object-serialization-in-java.html

    In this post I am going to write the practice code to get an object and its state serialized. And again we are going to read that.As Time, is a serializable object, so we will work on Time.
    My object is to capture current time and save to a file.Again read from that file.

    For capturing time we need to create a class.This is a separate class which will tell java that this class’s object is serializable. So we use to implement that class to Serializable.

    import java.io.Serializable;
    import java.util.Calendar;
    import java.util.Date;
    
    public class myTime implements Serializable {
        private Date time;
        public myTime() {
        time=Calendar.getInstance().getTime();
        }
    
    public Date callTime() {
        return time;
        }
    public static void main(String[] args) {
            myTime myTime = new myTime();
        }
    }
    
    

    Cool …The second objective is to create a class that will create a file and write this time as a serialized object.I am going to create a file called time.ser under C drive.
    There are two things important here

    • FileOutputStream
    • ObjectOutputStream
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectOutputStream;
    public class writeData {
        public static void main(String[] args) {
        String fileName="time.ser";
        FileOutputStream fos=null;
        ObjectOutputStream out=null;
        myTime time=new myTime();
        try{
            File file;
            file = new File("C:\"+fileName);
            fos=new FileOutputStream(file);
            out=new ObjectOutputStream(fos);
            out.writeObject(time);
            out.close();
            fos.close();
        } catch (FileNotFoundException e) {
           // TODO
        }
        catch (IOException e) {
          // TODO
        }
        }
    }
    
    

    if I compile and run this program, I am going to get a file created under C drive called time.ser.This file is the container where the serialized object is placed. This is not readable by Human.Only JVM can read this file.It is strongly advisable that please do not open or modify the file
    This file contains line like—
    Ԁ牳ༀ牰橯捥ㅴ洮呹浩깥좟ʜĀL琄浩瑥က橌癡⽡瑵汩䐯瑡㭥灸牳฀慪慶甮楴⹬慄整橨Ɓ奋ᥴ 砀睰 Ā㠵뎪碈
    Now we need to read it…

    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.util.Calendar;
    public class readData {
        public static void main(String[] args) {
            String filename = "time.ser";
            myTime time = null;
            FileInputStream fis = null;
            ObjectInputStream in = null;
            try
            {
            fis = new FileInputStream("C:\" + filename);
            in = new ObjectInputStream(fis);
            time = (myTime)in.readObject();
            System.out.print(time);
            in.close();
            }
            catch(IOException ex)
            {
              ex.printStackTrace();
            }
            catch(ClassNotFoundException ex)
            {
              ex.printStackTrace();
            }
            // print out restored time
            System.out.println("Flattened time: " + time.callTime());
            System.out.println();
            // print out the current time
            System.out.println("Current time: " + Calendar.getInstance().getTime());
        }
     }
    

    This what we are going to get
    [email protected] time: Wed Feb 01 16:56:45 IST 2012
    Current time: Wed Feb 01 17:25:00 IST 2012
    I serialized time at 16:56:45 and I deserialized that time at 17:25:00

    Don't miss out!
    Subscribe To Newsletter

    Receive top technical news, lesson ideas, travel tips and more!

    Invalid email address
    Give it a try. You can unsubscribe at any time.

    Spread the love
    • 1
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
      1
      Share

    LEAVE A REPLY

    Please enter your comment!
    Please enter your name here