Ինչպես սերիալացնել օբյեկտը Java- ում. 8 քայլ (նկարներով)

Բովանդակություն:

Ինչպես սերիալացնել օբյեկտը Java- ում. 8 քայլ (նկարներով)
Ինչպես սերիալացնել օբյեկտը Java- ում. 8 քայլ (նկարներով)

Video: Ինչպես սերիալացնել օբյեկտը Java- ում. 8 քայլ (նկարներով)

Video: Ինչպես սերիալացնել օբյեկտը Java- ում. 8 քայլ (նկարներով)
Video: Zero to Hero ControlNet Tutorial: Stable Diffusion Web UI Extension | Complete Feature Guide 2024, Մայիս
Anonim

Երբ Java- ում օբյեկտ եք սերիալիզացնում, տվյալները փոխակերպում եք բայթ հոսքերի, որոնք հետագայում նորից վերածվում են սկզբնական տվյալների պատճենի: Եթե սա շփոթեցուցիչ է թվում, մտածեք սերիալիզացիայի մասին հետևյալ պայմաններով: Դուք աշխատում եք փաստաթղթի վրա, այնուհետև պահեք այն ձեր կոշտ սկավառակի վրա: Դուք, խոսքի ձևով, սերիալավորում եք տվյալները, որպեսզի հետագայում կարողանաք ստանալ այդ պատճենը: Սերիալիզացիան ցանցերի տվյալների փոխանցումը շատ ավելի հեշտ և արդյունավետ է դարձնում:

Կարևոր է, որ դուք հասկանաք Java- ի հիմունքները ՝ նախքան օբյեկտի սերիալացումը: Եթե դուք օգտագործել եք ծրագրավորման լեզուներ, ինչպիսիք են Pascal- ը և C- ի հին տարբերակները, ապա կիմանաք, որ առանց օբյեկտի սերիականացման ծրագրավորողը պետք է ստեղծի առանձին I/O տեքստային ֆայլ ՝ տվյալները պահելու և բեռնելու համար: Java- ում օբյեկտների սերիալիզացիան շրջանցում է այս տեքստային ֆայլի ստեղծումը ՝ տվյալներ պահելու համար, խնայելով ժամանակ և ծրագրավորման ծախսեր: Հետևյալ հոդվածը պարունակում է Java- ում օբյեկտի սերիալիզացիայի քայլեր: Այս հոդվածի կոդի նմուշը օգտագործվում է The Java Developers Almanac 1.4 -ի միջոցով:

Քայլեր

Սերիալացրեք օբյեկտը Java- ում Քայլ 1
Սերիալացրեք օբյեկտը Java- ում Քայլ 1

Քայլ 1. Բացեք Java կոդավորման օբյեկտը, որը պահանջում է սերիալացում կամ ստեղծել այն զրոյից:

Սերիալացրեք օբյեկտը Java- ում Քայլ 2
Սերիալացրեք օբյեկտը Java- ում Քայլ 2

Քայլ 2. Ընտրեք այն օբյեկտը Java- ում, որը ցանկանում եք սերիալացնել:

Այս օրինակում մենք այդ օբյեկտը կանվանենք «MyObject»:

Սերիալացրեք օբյեկտը Java- ում Քայլ 3
Սերիալացրեք օբյեկտը Java- ում Քայլ 3

Քայլ 3. Միացրեք օբյեկտի սերիալացումը Java- ում ՝ MyObject դասին ստիպելով իրականացնել java.io. Serialize ինտերֆեյսը:

Կոդի սկզբում պարզապես ավելացրեք հետևյալ կոդի տողը ՝ փոխարինելով «հանրային դաս MyObject» տողին: MyObject հանրային դասը իրականացնում է java.io. Serializable

Սերիալացրեք օբյեկտը Java- ում Քայլ 4
Սերիալացրեք օբյեկտը Java- ում Քայլ 4

Քայլ 4. Այժմ ձեր օբյեկտը սերիալիզացվելի է, ինչը նշանակում է, որ այն կարող է գրվել ելքային հոսքի միջոցով, այսպես

  • Հետևյալ կոդերի տողերը ցույց են տալիս, թե ինչպես գրել MyObject (կամ սերիալիզացվող ցանկացած օբյեկտ) ֆայլի կամ սկավառակի վրա:

    փորձիր {

    // Տվյալների օբյեկտի սերիալացում ֆայլին

    ObjectOutputStream out = նոր ObjectOutputStream (նոր FileOutputStream («MyObject.ser»));

    out.writeObject (օբյեկտ);

    out.close ();

    // Սերիալիզացնել տվյալների օբյեկտը բայթ զանգվածին

    ByteArrayOutputStream bos = նոր ByteArrayOutputStream ();

    դուրս = նոր ObjectOutputStream (bos);

    out.writeObject (օբյեկտ);

    out.close ();

    // Ստացեք սերիականացված օբյեկտի բայթերը

    բայթ buf = bos.toByteArray ();

    } բռնել (IOException ե) {

    }

Սերիալացրեք օբյեկտը Java- ում Քայլ 5
Սերիալացրեք օբյեկտը Java- ում Քայլ 5

Քայլ 5. Այն կարելի է կարդալ այսպես

փորձեք {FileInputStream դուռ = նոր FileInputStream ("name_of_file.sav"); ObjectInputStream ընթերցող = նոր ObjectInputStream (դուռ); MyObject x = նոր MyObject (); x = (MyObject) reader.nextObject ();} catch (IOException e) {e.printStackTrace ();}

Սերիալացրեք օբյեկտը Java- ում Քայլ 6
Սերիալացրեք օբյեկտը Java- ում Քայլ 6
Սերիալացրեք օբյեկտը Java- ում Քայլ 7
Սերիալացրեք օբյեկտը Java- ում Քայլ 7

Քայլ 6. Կատարեք սերիականացված օբյեկտի կոդը Java ծրագրի շրջանակներում `համոզվելու համար, որ այն արդյունավետ է գործում (ըստ ցանկության):

Գործարկեք. Jar Java ֆայլ Քայլ 9
Գործարկեք. Jar Java ֆայլ Քայլ 9

Քայլ 7. Պահպանեք և փակեք սերիականացված օբյեկտը Java- ում:

Խորհուրդներ

  • Սերիալացման բարելավումները Java SE Development Kit 6-ում թույլ են տալիս օգտագործել ObjectStreamClass- ը ՝ փնտրելով ցանկացած մեթոդ, որը կարող է կարգավորել ոչ սերիականացվող դասի օբյեկտները:
  • Մեծ օբյեկտների ծառերում կարդալու և գրելու ժամանակը բարելավելու համար օգտագործեք «անցողիկ» հիմնաբառ, օրինակ `փոփոխականություններ, որոնք սերիալացում չեն պահանջում: Սա կբարձրացնի կատարումը այն առումով, որ դուք այլևս չեք կարդում և գրում ավելորդ տվյալներ սերիալիզացման գործընթացում:

Գուշացումներ

  • Java- ն գրեթե տարեկան կտրվածքով թողարկում է իրենց մշակողի հավաքածուի նոր տարբերակը: Նոր տարբերակները ներառում են Java- ում օբյեկտի սերիալացման եղանակի բարելավումներ և փոփոխություններ: Հետևաբար, կարևոր է վերահսկել ձեր օգտագործած տարբերակի փոփոխությունները:
  • Երբ օբյեկտները սերիալացնում եք, չեք կարող ծածկագրել տվյալների հոսքերը: Հետևաբար, անհրաժեշտության դեպքում պետք է ապավինել այլ ծրագրերին կամ երկրորդային ցանցային փոխադրման գործընթացներին:
  • Ներկայումս չկա տարբերակ, որը թույլ է տալիս օբյեկտներ գրել պատահական մուտքի ֆայլում: Փոխարենը, դուք կարող եք օգտագործել Byte Array մուտքի ելքային հոսքերը որպես տեղապահ, որից կարող եք կարդալ և գրել օբյեկտները: Այնուամենայնիվ, համոզվեք, որ ամբողջ օբյեկտը գտնվում է Byte զանգվածի հոսքում, հակառակ դեպքում գործընթացը ձախողվելու է:

Խորհուրդ ենք տալիս: