Javaда объектти кантип сериялаштыруу керек: 8 кадам (сүрөттөр менен)

Мазмуну:

Javaда объектти кантип сериялаштыруу керек: 8 кадам (сүрөттөр менен)
Javaда объектти кантип сериялаштыруу керек: 8 кадам (сүрөттөр менен)

Video: Javaда объектти кантип сериялаштыруу керек: 8 кадам (сүрөттөр менен)

Video: Javaда объектти кантип сериялаштыруу керек: 8 кадам (сүрөттөр менен)
Video: Болгону эки мүнөттүн ичинде агарган бермет сыяктуу аппак жана жалтырак тиштер, бул рецепт, үй шартын 2024, Апрель
Anonim

Javaда объектти сериялаштырганда, сиз маалыматты байт агымына айландырасыз, кийинчерээк кайра баштапкы маалыматтын көчүрмөсүнө айландырасыз. Эгерде бул түшүнүксүз угулса, сериализацияны төмөнкү терминдер менен ойлонуп көрүңүз. Сиз документтин үстүндө иштеп жатасыз, анан аны катуу дискке сактайсыз. Сиз, айткандай, маалыматтарды сериялаштырып жатасыз, ошондон кийин бул көчүрмөнү ала аласыз. Сериялаштыруу тармактардагы маалыматтарды берүүнү бир топ оңой жана эффективдүү кылат.

Объектти сериялаштыруудан мурун Javaнын негиздерин түшүнүшүңүз маанилүү. Эгерде сиз Паскаль жана Снын эски версиялары сыяктуу программалоо тилдерин колдонгон болсоңуз, анда объектти сериялаштырбастан, программист маалыматтарды сактоо жана жүктөө үчүн өзүнчө I/O текст файлын түзүшү керек экенин билесиз. Javaдагы объекттерди сериализациялоо бул текст файлын түзүп, маалыматтарды сактоо үчүн убакытты жана программалоо чыгымдарын үнөмдөйт. Кийинки макалада Javaдагы объектти сериялаштыруу кадамдары камтылган. Бул макаланын кодунун үлгүсү Java Developers Almanac 1.4 уруксаты менен колдонулат.

Кадамдар

Javaдагы объектти сериялаштыруу 1 -кадам
Javaдагы объектти сериялаштыруу 1 -кадам

Кадам 1. Сериялаштырууну талап кылган Java коддоо объектисин ачыңыз же нөлдөн баштап түзүңүз

Javaдагы объектти сериялаштыруу 2 -кадам
Javaдагы объектти сериялаштыруу 2 -кадам

Кадам 2. Сериялаштыргыңыз келген Java объектини тандаңыз

Бул мисалда, биз бул объектти "MyObject" деп атайбыз.

Javaдагы объектти сериялаштыруу 3 -кадам
Javaдагы объектти сериялаштыруу 3 -кадам

Кадам 3. MyObject классын java.io. Serialize интерфейсин ишке ашыруу менен Javaда объект сериализациясын иштетүү

Жөн гана коддун башына төмөнкү код линиясын кошуңуз, "коомдук класс MyObject" line.public класс MyObject java.io.serializable колдонот

Javaдагы объектти сериялаштыруу 4 -кадам
Javaдагы объектти сериялаштыруу 4 -кадам

4 -кадам. Эми сиздин объектиңиз сериализациялуу, башкача айтканда, аны мындай чыгаруу агымы аркылуу жазууга болот:

  • Төмөнкү код линиялары MyObjectти (же кандайдыр бир сериялаштырылуучу объектти) файлга же диске кантип жазууну көрсөтөт.

    аракет {

    // Файлга маалыматтар объектисин сериализациялоо

    ObjectOutputStream out = жаңы ObjectOutputStream (жаңы FileOutputStream ("MyObject.ser")));

    out.writeObject (объект);

    out.close ();

    // Маалымат объектин байт массивине сериализациялоо

    ByteArrayOutputStream bos = new ByteArrayOutputStream ();

    out = new ObjectOutputStream (bos);

    out.writeObject (объект);

    out.close ();

    // Сериялаштырылган объектинин байттарын алыңыз

    байт buf = bos.toByteArray ();

    } catch (IOException e) {

    }

Javaдагы объектти сериялаштыруу 5 -кадам
Javaдагы объектти сериялаштыруу 5 -кадам

Кадам 5. Аны мындай окууга болот:

аракет {FileInputStream эшик = жаңы FileInputStream ("name_of_file.sav"); ObjectInputStream окурманы = жаңы ObjectInputStream (эшик); MyObject x = жаңы MyObject (); x = (MyObject) reader.nextObject ();} кармоо (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 киргизүү чыгаруу агымдарын колдоно аласыз. Бирок, бүт объект Байт Array агымында экенине ишениңиз, болбосо процесс ийгиликсиз болот.

Сунушталууда: