Java Bộ mã hóa XMLLưu đối tượng với,Bộ giải mã XMLđược khôi phục bằng
Javađối tượng vớiđịnh dạng XMLGiới thiệu một chương trình mẫu để lưu với .
Đối với đầu ra XMLjava.beans.XMLEncodingSử dụng.
Cũngjava.beans.XMLDecodeChúng tôi cũng sẽ giới thiệu một chương trình mẫu sử dụng chương trình này để khôi phục các đối tượng đã lưu.
chương trình mẫu
- Các trường được khai báo là riêng tư sẽ được lưu khi bạn xác định phương thức getter và setter.
- Chỉ những thay đổi đối với các biến mới được lưu vào tệp XML.
- Bạn cũng có thể chỉ định java.util.HashMap, java.util.ArrayList, v.v. làm đối tượng cần lưu. Điều này rất hữu ích khi chỉ cần lưu trạng thái của một đối tượng.
// Xuất dữ liệu byte ra file
fileStream = FileOutputStream mới (đường dẫn);
fileStream.write(xmlbuff);
fileStream.flush();
} Cuối cùng {
nếu (enc != null) {
enc.close();
}
nếu (ra != null) {
out.close();
}
if (fileStream != null) {
fileStream.close();
}
}
}
/**
* Khôi phục đối tượng từ tệp XML tại đường dẫn [path] đã chỉ định.
* *Các tệp XML phải được lưu bằng java.beans.XMLEncode.
* Đường dẫn @param Đường dẫn nơi đối tượng được lưu trữ.
* @ném FileNotFoundException
* Nếu tệp được chỉ định bởi tên đường dẫn đã chỉ định không tồn tại
*/
Đối tượng tĩnh công khai readXML(Đường dẫn chuỗi) ném FileNotFoundException {
Bộ giải mã XML d = null;
thử {
d = XMLDecode mới(new BufferedInputStream(
FileInputStream mới (đường dẫn)));
trả về d.readObject();
} Cuối cùng {
nếu (d != null) {
d.close();
}
}
}
*Lớp sau sẽ được sử dụng làm mẫu của lớp sẽ được lưu.
Kết quả thực hiện
◆Ví dụ thực thi
// Khôi phục thể hiện của lớp FreeSoft từ XML
FreeSoft freeSoft2 = (FreeSoft)readXML(“C:\\FreeSoft.xml”);
System.out.println(“Tên phần mềm:”+freeSoft2.getName());
System.out.println(“URL:”+freeSoft2.getUrl());
} bắt (Ngoại lệ e) {
e.printStackTrace();
}
}
◆Kết quả đầu ra
Tên phần mềm: Chat & Messenger Vừa chat vừa nhắn tin! ! URL: https://chat-messenger.com/
◆Nội dung của C:\\FreeSoft.xml
Những điểm cần lưu ý khi sử dụng
Các lớp java.beans.XMLEncode và java.beans.XMLDecoding rất hữu ích, nhưng khi được sử dụng thực tế trong Chat&Messenger, trong những trường hợp cực kỳ hiếm gặp, khi xuất ra XML bằng java.beans.XMLEncode, tệp sẽ trở thành 0 byte.
Nếu tệp 0 byte được đọc, ParseException sẽ được ghi lại trong "đầu ra lỗi tiêu chuẩn".
Lý do cho điều này là tệp sẽ trống khi phiên bản FileOutputStream được tạo.
Tôi tin rằng điều này xảy ra khi quá trình Java bị tắt sau khi khởi tạo FileOutputStream nhưng trước khi xuất dữ liệu XML.
Do sự cố này, Chat&Messenger tạo tệp sao lưu để tránh sự cố.