Skip to main content

Serialization,Externalizable









Serialization


 class Student implements Serializable {  
      int id;  String name;  String lastname;  
      private static final long serialVersionUID = -8000090944414208496L;  
      public Student(){}  
   //getter setters.........
 }  
 public class SerializableExample {  
      // deserialize to Object from given file  
      public static Object deserialize(String fileName) throws IOException,  
                ClassNotFoundException {  
           FileInputStream fis = new FileInputStream(fileName);  
           ObjectInputStream ois = new ObjectInputStream(fis);  
           Object obj = ois.readObject();  
           ois.close();  
           return obj;  
      }  
      // serialize the given object and save it to file  
      public static void serialize(Object obj, String fileName)  
                throws IOException {  
           FileOutputStream fos = new FileOutputStream(fileName);  
           ObjectOutputStream oos = new ObjectOutputStream(fos);  
           oos.writeObject(obj);  
           fos.close();  
      }  
      public static void main(String[] args) {  
           /*     Student student = new Student();  
           student.setId(1);  
           student.setName("aaaaa");  
           student.setLastname("bbbbbbb");  
           try {  
                serialize(student,"student.txt");  
           } catch (IOException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
           }  
      */       
           String fileName="student.txt";  
           Student student = null;  
           try {  
                student = (Student) deserialize(fileName);  
                System.out.println(student.getName());  
           } catch (ClassNotFoundException | IOException e) {  
                e.printStackTrace();  
           }  
      }  
 } 

Externalizable  : For security ,helps make data secure

 
 class Employee implements Externalizable{  
      int id;  
      String name;  
      String lastname;  
      public Employee(){}  
      @Override  
      public void writeExternal(java.io.ObjectOutput out) throws IOException {  
           out.writeInt(id);  
           out.writeObject("aa"+name);  
      }  
      @Override  
      public void readExternal(java.io.ObjectInput in) throws IOException, ClassNotFoundException {  
           id = in.readInt();  
           if(name!=null){  
                name = (String) in.readObject();  
                //if(!name.startsWith("aa"))throw new IOException("curropt data");  
           //     name = name.substring(2);  
           }  
      }  
//getter setters
 }  
 public class ExternalizableExample {  
                public static void main(String args[]){  
                     Employee employee = new Employee();  
                     employee.setId(1);  
                     employee.setName("aaaaa");  
                     //serializeObject( employee);  
                     deSerializeObject("");  
                }  
                public static void serializeObject(Employee employee){  
                     try {  
                            FileOutputStream output = new FileOutputStream("employee.txt");  
                            ObjectOutputStream oos = new ObjectOutputStream(output);  
                            oos.writeObject(employee);  
                            oos.close();  
                     } catch (IOException e) {  
                               e.printStackTrace();  
                     }       
                }  
                public static void deSerializeObject(String filename){  
                     filename = "employee.txt";  
                     FileInputStream input;  
                     try {  
                          input = new FileInputStream(filename);  
                          ObjectInputStream ois = new ObjectInputStream(input);  
                       Employee employee = (Employee)ois.readObject();  
                       ois.close();  
                       System.out.println("Employee id ="+employee.getId());  
                       System.out.println("Employee name is ="+employee.getName());  
                     } catch (IOException | ClassNotFoundException e) {  
                          e.printStackTrace();  
                     }   }  }  








Comments

Popular posts from this blog

Microservices Design patterns

What are microservices? Microservices - also known as the microservice architecture - is an architectural style that structures an application as a collection of services that are Highly maintainable and testable Loosely coupled Independently deployable Organized around business capabilities Owned by a small team The microservice architecture enables the rapid, frequent and reliable delivery of large, complex applications. It also enables an organization to evolve its technology stack. You are developing a server-side enterprise application. It must support a variety of different clients including desktop browsers, mobile browsers and native mobile applications. The application might also expose an API for 3rd parties to consume. It might also integrate with other applications via either web services or a message broker. The application handles requests (HTTP requests and messages) by executing business logic; accessing a database; exchanging messages with other systems; and returni...

GraphQL

What is GraphQL  API Standard invented & open-sourced by Facebook Alternative to  REST API  enables declarative data fetching  exposes single endpoint & responds to queries How it works?  Why Graphql? Improvises performance by reducing the data that is to be transferred over the internet Variety of different frontend frameworks and platforms on client-side Fast development speed & expectation for rapid feature development Why Graphql is better than REST? Flexibility & efficient  No more over /under fetching of data Over fetching : Under fetching: Insightful analytics  Schema serves as contract between client and server CORE CONCEPTS : SDL :SCHEMA DEFINITION LANGUAGE Writing Data with mutations 3 kinds of mutations creating new data updating existing data deleting existing data

Jackson

<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId> jackson-core </artifactId> <version>2.9.6</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId> jackson-annotations </artifactId> <version>2.9.6</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId> jackson-databind </artifactId> <version>2.9.6</version> </dependency> CBOR encoded data with Jackson <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-cbor</artifactId> <version>2.9.6</version> </dependency> In order to read and write MessagePack encoded data <dependency> <groupId>org.msgpack</groupId> <artifactId>jackson-dataformat-msgp...