Ví dụ và khái niệm tuần tự hóa Java

Ở đây tôi sẽ tìm hiểu và dạy cho bạn thế nào là Tuần tự hóa trong Java và cách viết mã cho cùng. 

lap-trinh-java
khái niệm tuần tự hóa Java

Tuần tự hóa là gì trong Java?

Tuần tự hóa Java là một quá trình trong đó trạng thái hiện tại của Object sẽ được lưu trong luồng của byte. Luồng byte là trung tính nền tảng do đó một khi một đối tượng được tạo trong một hệ thống, có thể được giải tuần tự hóa trong các nền tảng khác.

Việc sử dụng nối tiếp là gì?

Như đã viết ở trên, tuần tự hóa sẽ dịch trạng thái Object sang Byte Stream. Luồng Byte này có thể được sử dụng cho mục đích khác.

  • Ghi vào đĩa
  • Lưu trữ trong bộ nhớ
  • Đã gửi luồng byte đến các nền tảng khác qua mạng
  • Lưu luồng byte trong DB (Như BLOB)

Tuần tự hóa và giải tuần tự hóa trong Java

Bây giờ chúng ta biết tuần tự hóa là gì. Nhưng chúng ta cần hiểu làm thế nào để đạt được nó trong Java và nó sẽ hoạt động như thế nào.

Java đã cung cấp cách thức ( java.io.Serializable Interface) để tuần tự hóa một đối tượng. Nếu bạn muốn bất kỳ lớp nào được tuần tự hóa, thì lớp đó cần phải thực hiện giao diện đã cho.

Lưu ý *: Giao diện nối tiếp là Giao diện đánh dấu. Do đó không có phương pháp trong giao diện Nối tiếp.

Mã để tuần tự hóa lớp trong Java

Employee.java

package com.jbt;
import java.io.Serializable;
public class Employee implements Serializable
{
   public String firstName;
   public String lastName;
   private static final long serialVersionUID = 5462223600l;
}

SerializaitonClass.java

package com.jbt;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class SerializaitonClass {
	public static void main(String[] args) {
		Employee emp = new Employee();
		emp.firstName = "Vivekanand";
		emp.lastName = "Gautam";
		try {
			FileOutputStream fileOut = new FileOutputStream("./employee.txt");
			ObjectOutputStream out = new ObjectOutputStream(fileOut);
			out.writeObject(emp);
			out.close();
			fileOut.close();
			System.out.printf("Serialized data is saved in ./employee.txt file");
		} catch (IOException i) {
			i.printStackTrace();
		}
	}
}

DeserializationClass.java

package com.jbt;
import java.io.*;
public class DeserializationClass {
	public static void main(String[] args) {
		Employee emp = null;
		try {
			FileInputStream fileIn = new FileInputStream("./employee.txt");
			ObjectInputStream in = new ObjectInputStream(fileIn);
			emp = (Employee) in.readObject();
			in.close();
			fileIn.close();
		} catch (IOException i) {
			i.printStackTrace();
			return;
		} catch (ClassNotFoundException c) {
			System.out.println("Employee class not found");
			c.printStackTrace();
			return;
		}
		System.out.println("Deserializing Employee...");
		System.out.println("First Name of Employee: " + emp.firstName);
		System.out.println("Last Name of Employee: " + emp.lastName);
	}
}

Đầu tiên, hãy chạy tập tin serial serialitonitonClass và bạn sẽ nhận được tập tin worker worker.txt.

Chạy lần thứ hai, DeserializationClass, và java sẽ giải tuần tự hóa lớp và giá trị sẽ được in trong bảng điều khiển. 

Đầu ra sẽ là :

Deserializing Employee...
First Name of Employee: Vivekanand
Last Name of Employee: Gautam

Bullet Points

  • Giao diện tuần tự hóa cần được thực hiện để làm cho đối tượng được tuần tự hóa.
  • Biến đối tượng thoáng qua không tuần tự hóa với trạng thái Object.
  • Nếu Super class thực hiện serializable thì lớp con cũng tự động serializable.
  • Nếu Superclass không được tuần tự hóa thì khi một lớp con được khử lưu trữ thì hàm tạo mặc định siêu lớp của lớp sẽ được gọi. Do đó tất cả các biến sẽ nhận được giá trị mặc định và tham chiếu sẽ là null.

Trong bài viết tiếp theo, chúng ta sẽ nói về việc sử dụng biến Transient.

Bài viết gần đây

Java Lambda: Hướng dẫn cho người mới bắt đầu

Bài viết này giải thích các biểu thức Java Lambda trong Java 8. Biểu thức Lambda Java

Ví dụ về Tải xuống tệp từ máy chủ bằng cách sử dụng JSP

Trong ví dụ này, chúng tôi sẽ tải xuống tệp jsp. Nhưng bạn có thể tải xuống bất kỳ tập tin. 

Hướng dẫn sử dụng Spring JdbcTemplate

Spring JdbcTemplate là một cơ chế mạnh mẽ để kết nối với cơ sở dữ liệu và thực hiện các truy vấn SQL. Nó sử...

Hướng dẫn chủ đề Java

Một Instance of Thread là một đối tượng giống như bất kỳ đối tượng nào khác trong Java và nó chứa các biến và...

Tải tập tin lên máy chủ bằng cách sử dụng JSP

Có nhiều cách để tải tệp lên máy chủ. Một trong những cách là bởi lớp MultipartRequest. Để sử dụng lớp này,...

Ví dụ cấu hình Spring AOP AspectJ Xml

Spring cho phép bạn xác định các khía cạnh, lời khuyên và điểm nhấn trong tệp xml. Trong trang...

Leave a reply

Please enter your comment!
Please enter your name here