Java -da bir obyekti seriyalaşdırdığınızda, məlumatları bayt axınlarına çevirirsiniz, sonra daha sonra orijinal məlumatların surətinə çevrilir. Bu qarışıq səslənirsə, aşağıdakı terminlərlə seriallaşdırma düşünün. Sənəd üzərində işləyirsən və sonra onu sabit diskinə saxlayırsan. Danışmaq tərzi ilə məlumatları ardıcıllaşdırırsınız ki, sonradan həmin nüsxəni əldə edə biləsiniz. Serializasiya şəbəkələrdəki məlumatların ötürülməsini daha asan və daha səmərəli edir.
Bir obyekti seriallaşdırmadan əvvəl Java -nın əsaslarını başa düşməyiniz vacibdir. Pascal və C -nin köhnə versiyaları kimi proqramlaşdırma dillərindən istifadə etmisinizsə, biləcəksiniz ki, obyektlərin seriyalaşdırılması olmadan proqramçı məlumatları saxlamaq və yükləmək üçün ayrıca bir G/Ç mətn faylı yaratmalıdır. Java -da obyektlərin seriyalaşdırılması, məlumatları saxlamaq, vaxta və proqramlaşdırma xərclərinə qənaət etmək üçün bu mətn faylını yaratmağı aşır. Aşağıdakı məqalədə, Java -da bir obyekti ardıcıllaşdırmaq üçün addımlar var. Bu məqalədəki nümunə kod, Java Developers Almanac 1.4 -ün izni ilə istifadə edilmişdir.
Addımlar
Addım 1. Seriallaşdırma tələb edən Java kodlaşdırma obyektini açın və ya sıfırdan yaradın
Addım 2. Java -da seriallaşdırmaq istədiyiniz obyekti seçin
Bu nümunədə həmin obyektə "MyObject" deyəcəyik.
Addım 3. MyObject sinifini java.io. Serialize interfeysini həyata keçirtməklə Java -da obyektlərin seriallaşdırılmasını aktivləşdirin
Kodun əvvəlinə "ictimai sinif MyObject" line.public sinif MyObject əvəz edərək aşağıdakı kod satırını əlavə edin java.io. Serializable
Addım 4. İndi obyektiniz seriallaşdırıla bilər, yəni bu kimi bir çıxış axını ilə yazıla bilər:
-
Aşağıdakı kod xətləri MyObject -in (və ya hər hansı bir seriallaşdırıla bilən obyektin) bir fayla və ya diskə necə yazılacağını göstərir.
sınayın {
// Məlumat obyektini bir fayla seriyalaşdırın
ObjectOutputStream out = yeni ObjectOutputStream (yeni FileOutputStream ("MyObject.ser")));
out.writeObject (obyekt);
out.close ();
// Məlumat obyektini bayt massivinə seriyalaşdırın
ByteArrayOutputStream bos = yeni ByteArrayOutputStream ();
out = yeni ObjectOutputStream (bos);
out.writeObject (obyekt);
out.close ();
// Seriallaşdırılmış obyektin baytlarını alın
bayt buf = bos.toByteArray ();
} tutmaq (IOException e) {
}
Addım 5. Bu kimi oxuya bilərsiniz:
-
cəhd edin {FileInputStream qapısı = yeni FileInputStream ("name_of_file.sav"); ObjectInputStream oxucu = yeni ObjectInputStream (qapı); MyObject x = yeni MyObject (); x = (MyObject) oxucu.nextObject ();} tutmaq (IOException e) {e.printStackTrace ();}
Addım 6. Səmərəli işlədiyinə əmin olmaq üçün Java proqramında seriallaşdırılmış obyekt kodunu icra edin (isteğe bağlı)
Addım 7. Seriallaşdırılmış obyekti Java -da qeyd edin və bağlayın
İpuçları
- Java SE İnkişaf Kit 6-dakı seriyalaşdırma təkmilləşdirmələri, ObjectStreamClass-dan istifadə edərək seriyalaşdırıla bilməyən sinif obyektlərini idarə etmək üçün hər hansı bir metodu axtarmağa imkan verir.
- Böyük obyekt ağaclarında oxuma və yazma müddətlərini yaxşılaşdırmaq üçün, məsələn, seriallaşdırma tələb etməyən dəyişənlər üçün "keçici" sözünü istifadə edin. Bu, artıq seriallaşdırma prosesinə lazımsız məlumatları oxumadığınız və yazmadığınız üçün performansı artıracaq.
Xəbərdarlıqlar
- Java demək olar ki, hər il istehsalçı dəstinin yeni bir versiyası ilə çıxır. Yeni versiyalar, bir Obyekti Java -da necə seriallaşdıra biləcəyinizə dair təkmilləşdirmələr və dəyişiklikləri əhatə edir. Bu səbəbdən istifadə etdiyiniz versiyadakı dəyişiklikləri izləmək vacibdir.
- Obyektləri seriallaşdırarkən, məlumat axınlarını şifrələyə bilməzsiniz. Bu səbəbdən, lazım olduqda məlumatları qorumaq üçün digər tətbiqlərə və ya ikincil şəbəkə nəqli proseslərinə etibar etməlisiniz.
- Təsadüfi giriş faylına obyekt yazmağa imkan verən heç bir seçim yoxdur. Bunun əvəzinə, Byte Array giriş çıxış axınlarından obyektləri oxumaq və yazmaq üçün bir yer tutucu kimi istifadə edə bilərsiniz. Bununla birlikdə, bütün obyektin Bayt Array axınında olduğundan əmin olun, yoxsa proses uğursuz olacaq.