Object Serialization | Võ Văn Hải's Blog
Ở bài Các bước căn bản tạo đối tượng trong java, chúng ta đã nói cách tạo 1 danh sách các đối tượng. Ở bài Sử dụng text file để lưu trữ dữ liệu dạng CSDL chúng ta cũng nói về cách dùng TextFile lưu trữ danh sách các đối tượng nhưng cách này không được tốt bởi nó lưu trữ dạng text và việc khôi phục từng dòng text cũng như ký tự phân cách,… làm cho việc này chỉ là ở mức demo cho vui mà thôi. Java có 1 kỹ thuật rất hay dùng để serial 1 đối tượng bất kỳ và gửi xuống tập tin hoặc gửi qua mạng.
Giả sử chúng ta đã có lớp Thisinh.java và lớp Phongthi.java. Bây giờ chúng ta cần chỉnh sửa 1 vài vần đề nữa, cụ thể đó là:
- Đối với các lớp cần serial, chúng ta phải cho lớp đó implements interface java.io.Serialiable.
- Tạo 1 lớp chuyên dùng cho việc serial đối tượng với 2 phương thức SerialObject và DeserialObject.
Code cho lớp Thisinh.java
| public class Thisinh implements java.io.Serializable{ //Các instatance data private String soBD; private String hoTen; private float diemToan; private float diemLy; private float diemHoa;… } |
Code cho lớp Phongthi.java
| public class Phongthi implements java.io.Serializable{ private static final long serialVersionUID = 7576163164455567730L; //các thuộc tính của đối tượng phòng thi private String msPT; private String diachiPT; private int luongTS;… } |
Code cho lớp dùng để serial đối tượng, lớp MyDBengine.java
| package serial;import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class MyDBengine { /** * Serial 1 đối tượng xuống file * @param fileName file chỉ định * @param h: đối tượng cần serial * @throws Exception */ public void SerialObject(String fileName, Object obj) throws Exception{ //Tạo luồng ghi file FileOutputStream fs=new FileOutputStream(fileName); //Tạo luồng để serial đối tượng ObjectOutputStream os=new ObjectOutputStream(fs); //chuyển tải đối tượng tới đích (tập tin) os.writeObject(obj); //đóng luồng fs.close();os.close(); } /** * Khôi phục(deserial) 1 đối tượng đã được serial trước đó * lên bộ nhớ. * @param fileName: file chỉ định * @return đối tượng đã được phục hồi * @throws Exception */ public Object DeserialObject(String fileName) throws Exception{ Object kp=null; //Tạo luồng đọc file đã được serial FileInputStream fi=new FileInputStream(fileName); //Tạo luồng để Deserialize đối tượng ObjectInputStream ois=new ObjectInputStream(fi); //Tiến hành khôi phục đối tượng kp=ois.readObject(); //đóng luồng fi.close();ois.close(); return kp; } } |
Như vậy, với lớp này chúng ta có thể dùng nó cho các lần serial bất kỳ đối tượng nào xuống file.
Chúc các bạn thành công!
Share this:
- X
Từ khóa » Ghi đối Tượng Ra File Trong Java
-
Ghi đối Tượng (Object) Vào File Trong Java - Ngoc Khuong Blog
-
[Java] Đọc Ghi Theo Object Trong Java - Read Write Object In Java
-
Đọc File Theo Object Trong Java - Deft Blog
-
Làm Việc Với File Trong Java
-
Ghi File Trong Java Với Lớp FileWriter - Học Java Miễn Phí Hay Nhất
-
Đọc Ghi File Trong Java - Học Java Miễn Phí Hay Nhất - VietTuts
-
Cách đọc Ghi File Trong Java - Lập Trình Không Khó
-
Bài 14: Đọc Ghi File Theo Object Trong Java - Www.AndroidCoBan.Com
-
Java - Đọc Ghi Các đối Tượng Với ObjectOutputStream Và ... - YouTube
-
Đọc, Ghi đối Tượng Vào File Trong Java - Doan Luan's Blog
-
Cách Ghi Nối Thêm Nội Dung Vào File Trong Java - Freetuts
-
Cách Ghi File Trong Java - Freetuts
-
Tự Học Java | Lớp ObjectOutputStream Trong Java »
-
Lớp FileReader Và FileWriter Trong Java - Góc Học IT