Как да сериализираме обект в Java: 8 стъпки (със снимки)

Съдържание:

Как да сериализираме обект в Java: 8 стъпки (със снимки)
Как да сериализираме обект в Java: 8 стъпки (със снимки)

Видео: Как да сериализираме обект в Java: 8 стъпки (със снимки)

Видео: Как да сериализираме обект в Java: 8 стъпки (със снимки)
Видео: Работа с фигурами в Inkscape | Урок 1 2024, Април
Anonim

Когато сериализирате обект в Java, конвертирате данните в байтови потоци, които по -късно конвертират обратно в копие на оригиналните данни. Ако това звучи объркващо, помислете за сериализация в следните термини. Работите върху документ и след това го запазвате на вашия твърд диск. Така или иначе, вие сериализирате данните, за да можете да изтеглите това копие по -късно. Сериализацията прави трансфера на данни в мрежите много по -лесен и по -ефективен.

Важно е да разберете основите на Java, преди да сериализирате обект. Ако сте използвали езици за програмиране като Pascal и по -стари версии на C, ще знаете, че без сериализация на обекти програмистът трябва да създаде отделен 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. Активирайте сериализацията на обекти в 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 ();

    out = нов ObjectOutputStream (bos);

    out.writeObject (обект);

    out.close ();

    // Вземете байтовете на сериализирания обект

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

    } catch (IOException e) {

    }

Сериализирайте обект в Java Стъпка 5
Сериализирайте обект в Java Стъпка 5

Стъпка 5. Може да се прочете така:

опитайте {FileInputStream door = new 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 потърсете всеки метод за обработка на всякакви несериализуеми обекти на клас.
  • За да подобрите времето за четене и писане в големи обектни дървета, използвайте ключовата дума „transient“например променливи, които не изискват сериализация. Това ще увеличи производителността, тъй като вече не четете и не записвате ненужни данни в процеса на сериализация.

Предупреждения

  • Java излиза с нова версия на комплекта им за разработчици почти всяка година. Новите версии включват надстройки и промени в начина, по който можете да сериализирате обект в Java. Затова е важно да следите промените във версията, която използвате.
  • Когато сериализирате обекти, не можете да шифровате потоци от данни. Следователно ще трябва да разчитате на други приложения или вторични мрежови транспортни процеси, за да защитите данните, ако е необходимо.
  • Понастоящем няма опция, която да ви позволява да записвате обекти във файл с произволен достъп. Вместо това можете да използвате входните изходни потоци от масив от байтове като заместител, от който да четете и записвате обектите. Уверете се обаче, че целият обект е в потока Byte Array или процесът ще се провали.

Препоръчано: