Skip to main content

Object serialization in java


Serialization is the conversion of an object to a series of bytes, so that the object can be easily saved to persistent storage or streamed across a communication link. The byte stream can then be deserialized - converted into a replica of the original object.




When you want to serialize an object, that respective class should implement the marker interface serializable. It just informs the compiler that this java class can be serialized. You can tag properties that should not be serialized as transient. You open a stream and write the object into it.

Code for serialization of a java class :



Data.java

package com.codetalk.serialization;

import java.io.Serializable;

public class Data implements Serializable {
 
 private static final long serialVersionUID = 1L;
 
 private String firstName;
 private String lastName;
 
 /**
  * @return the firstName
  */
 public String getFirstName() {
  return firstName;
 }
 /**
  * @param firstName the firstName to set
  */
 public void setFirstName(String firstName) {
  this.firstName = firstName;
 }
 /**
  * @return the lastName
  */
 public String getLastName() {
  return lastName;
 }
 /**
  * @param lastName the lastName to set
  */
 public void setLastName(String lastName) {
  this.lastName = lastName;
 }

}


Serialization.java

package com.codetalk.serialization;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class Serialization {

 public static void main(String[] args) {
  
  Data   data = new Data();
  String file = "/home/rakesh/data.txt";
  
  data.setFirstName("Rakesh KR");
  data.setLastName("KR");

  try {
   FileOutputStream   fileOut = new FileOutputStream(file);
   ObjectOutputStream out     = new ObjectOutputStream(fileOut);
   out.writeObject(data);
   out.close();
   fileOut.close();
   System.out.println("Serialized data is saved in : "+file);
  } catch(IOException i) {
   i.printStackTrace();
  } catch(Exception e){
   e.printStackTrace();
  } finally{
   data = null;
  }
 }
}


DeSerialization.java
package com.codetalk.serialization;

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

public class Deserialization {
 
 public static void main(String[] args) {

  Data   data = null;
  String file = "/home/rakesh/data.txt";
  
  try {
   FileInputStream fileIn = new FileInputStream(file);
   ObjectInputStream in   = new ObjectInputStream(fileIn);
   data = (Data) in.readObject();
   in.close();
   fileIn.close();
  } catch (IOException i) {
   i.printStackTrace();
   return;
  } catch (ClassNotFoundException c) {
   System.out.println("Data class not found");
   c.printStackTrace();
  }
  
  System.out.println("Deserializing Object...");
  System.out.println("First Name  : "+data.getFirstName());
  System.out.println("Last  Name  : "+data.getLastName());
  
 }
 
}


Output :
Deserializing Object...
First Name  : Rakesh KR
Last  Name  : KR

Comments

Popular posts from this blog

JSON (JavaScript Object Notation)

JSON (JavaScript Object Notation) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other serializable values). It is a common data format with diverse uses in electronic data interchange, including that of web applications with servers. JSON is a language-independent data format. It was derived from JavaScript, but many modern programming languages include code to generate and parse JSON-format data. JSON filenames use the extension .json. Any valid JSON file is a valid JavaScript (.js) file, even though it makes no changes to a web page on its own. Douglas Crockford originally specified the JSON format in the early 2000s. He and Chip Morningstar sent the first JSON message in April 2001. Official website :- https://json.org/

Amazon Lambda (AWS Lambda)

 AWS Lambda is an event-driven, serverless computing platform provided by Amazon as a part of Amazon Web Services. It is a computing service that runs code in response to events and automatically manages the computing resources required by that code. It was introduced on November 13, 2014. AWS Lambda was designed for use cases such as image or object uploads to Amazon S3, updates to DynamoDB tables, responding to website clicks, or reacting to sensor readings from an IoT connected device.  Unlike Amazon EC2, which is priced by the hour but metered by the second, AWS Lambda is metered by rounding up to the nearest millisecond with no minimum execution time. AWS Lambda can also be used to automatically provision back-end services triggered by custom HTTP requests, and "spin down" such services when not in use, to save resources. Since December 2020 Lambda supports Docker containers through ECR up to 10 GB in size. Official website :- https://aws.amazon.com/lambda