Bài 33: Đọc ghi file theo Object trong Java
- Mình sẽ viết 2 ví dụ cụ thể, với các mức độ khác nhau,từ đơn giản nhất. Nếu bạn thấy khó hiểu chỗ nào có thể bình luận phía dưới. Mọi người cùng trao đổi.
**Chú ý: Để đọc ghi theo Object trong Java thì tại class Object đó ta cần đặt giao tiếp java.io.Serializable (implements Serializable)
Ví dụ 1: Đọc ghi 1 đối tượng lên file theo từng object:
- Khai báo 1 class SinhVien gồm 2 thuộc tính họ tên, tuổi. Tạo 1 đối tượng cụ thể sinh viên a sau đó
gán thông tin cho sinh viên a rồi ghi đối tượng a này xuống file "E:\\sinhvien.dat"
- Mở file trên ra. Đọc file đó theo kiểu object để lấy đối tượng đó ra, (cần ép kiểu về kiểu dữ liệu của đối tượng), rồi gán nó vào đối tượng a1. In ra màn hình thông tin đối tượng a1. Code như sau:
PHP:
package javaandroidvn;
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;
class SinhVien implements Serializable {
public String hoTen;
public int tuoi;
}
public class JavaAndroidVn {
public static void main(String[] args) throws IOException {
SinhVien a = new SinhVien();
a.hoTen = "Vũ Văn Tường";
a.tuoi = 21;
try {
FileOutputStream f = new FileOutputStream("E:\\sinhvien.dat");
ObjectOutputStream oOT = new ObjectOutputStream(f); // Sử dụng để ghi file theo từng Object
oOT.writeObject(a); // Ghi Object là đối tượng a xuống file
oOT.close();
f.close();
} catch (IOException e) {
System.out.println("Có lỗi xảy ra!");
}
SinhVien a1 = new SinhVien(); //Tạo đối tượng a1 mới, để phía dưới gán bằng đối tượng ta lấy được ra từ file
try {
FileInputStream f = new FileInputStream("E:\\sinhvien.dat");
ObjectInputStream oIT = new ObjectInputStream(f); // Sử dụng để đọc file theo từng Object
a1 = (SinhVien) oIT.readObject(); //Đọc Object đầu tiên ép kiểu về kiểu SinhVien sau đó gán bằng đối tượng a1
oIT.close();
f.close();
} catch (IOException io) {
System.out.println("Có lỗi xảy ra!");
} catch (ClassNotFoundException ex) {
System.out.println("Không tìm thấy class");
}
System.out.println("Thông tin sinh vien a1 đọc ra là: \nTên: "+a1.hoTen+"\nTuổi: "+a1.tuoi);
}
}
(Qua ví dụ này, và kết hợp bài sau, mình sẽ giới thiệu cách đọc ghi 1 danh sách các đối tượng lên file, giúp việc quản lý danh sách các đối tượng dễ dàng hơn!)
PHP:
package javaandroidvn;
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;
class SinhVien implements Serializable {
private String hoTen;
private int tuoi;
public String getHoTen() {
return hoTen;
}
public void setHoTen(String hoTen) {
this.hoTen = hoTen;
}
public int getTuoi() {
return tuoi;
}
public void setTuoi(int tuoi) {
this.tuoi = tuoi;
}
}
public class JavaAndroidVn {
0 nhận xét:
Post a Comment