Домой Учебники по Java и J2EE Как сериализовать десериализовать список объектов в Java? Пример сериализации Java

Как сериализовать десериализовать список объектов в Java? Пример сериализации Java

747
0

Java предоставляет механизм, называемый сериализацией объекта, где объект может быть представлен в виде последовательности байтов, которая включает в себя данные объекта, а также информацию о типе объекта и типах данных, хранящихся в объекте.

После того, как сериализованный объект был записан в файл, его можно прочитать из файла и десериализовать, то есть информацию о типе и байты, которые представляют объект и его данные, можно использовать для воссоздания объекта в памяти .

Наиболее впечатляет то, что весь процесс независим от JVM , то есть объект может быть сериализован на одной платформе и десериализован на совершенно другой платформе.

Как создать простой кэш в памяти в Java (Lightweight Cache)

Классы ObjectInputStream а также ObjectOutputStream являются потоками высокого уровня, которые содержат методы для сериализации и десериализации объекта.

Ниже урок будет работать, если у вас есть какие-либо из следующих вопросов:

  • Как сериализовать и десериализовать объект, используя JSON
  • Как сериализовать и десериализовать объект в примере Java
  • Java сериализует десериализацию объекта в строку XML
  • Сериализация и десериализация двоичного дерева
  • Сериализация списка в Java

Вот полный пример. Вот эти шаги:

  1. Создать Class Item (), который реализует Сериализуемый .
  2. В основном — создать 2 объекта предметов.
  3. Добавьте его в ArrayList .
  4. Сериализуйте ArrayList. Файл проверки, чтобы увидеть поток объекта. (Ниже изображение)
  5. Десериализовать поток байтов из того же файла, чтобы увидеть объект.

CrunchifySerializeDeserialize.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
пакет ком . crunchify. учебные пособия ;
Импортировать Java. Ио. FileInputStream ;
Импортировать Java. Ио. FileNotFoundException ;
Импортировать Java. Ио. FileOutputStream ;
Импортировать Java. Ио. IOException ;
Импортировать Java. Ио. ObjectInputStream ;
Импортировать Java. Ио. ObjectOutputStream ;
Импортировать Java. Ио. Сериализуемый ;
Импортировать Java. Util. ArrayList ;
Импортировать Java. Util. Список ;
@SuppressWarnings ( серийный )
общественности учебный класс CrunchifySerializeDeserialize инвентарь Сериализуемый {
общественности статический недействительным main ( Строка [ ] аргументы ) бросает ClassNotFoundException {
ИНТ я ;
Предмет [ ] Предметы знак равно новый Пункт [ 2 ] ;
CrunchifySerializeDeserialize с знак равно новый CrunchifySerializeDeserialize ( ) ;
за ( я знак равно 0 ; я < предметы . длина ; я ++ ) {
предметы [ я ] знак равно с . новый предмет ( ) ; // создать массив
}
// жестко закодированные значения id, desc, cost, qty
предметы [ 0 ] . setItemID ( ITEM101 ) ;
предметы [ 1 ] . setItemID ( ITEM102 ) ;
предметы [ 0 ] . setDesc ( «iPad» ) ;
предметы [ 1 ] . setDesc ( iPhone ) ;
предметы [ 0 ] . setCost ( 499 ) ;
предметы [ 1 ] . setCost ( 599 ) ;
предметы [ 0 ] . setQuantity ( 1 ) ;
предметы [ 1 ] . setQuantity ( 3 ) ;
Система. вне. println ( «Сведения об элементе …..» ) ;
за ( Пункт d : предметы ) {
Система. вне. печать ( d . getItemID ( ) ) ;
Система. вне. печать ( / т + д. getDesc ( ) ) ;
Система. вне. печать ( / т + д. getCost ( ) ) ;
Система. вне. println ( / т + д. getQuantity ( ) ) ;
}
Список <Элемент> объект ;
OBJ знак равно новый ArrayList ( ) ;
за ( я знак равно 0 ; я < предметы . длина ; я ++ ) {
OBJ. добавить ( items [ i ] ) ;
}
// Давайте сериализуем объект
пытаться {
FileOutputStream fileOut знак равно новый FileOutputStream ( /Users//Downloads/CrunchifyTest/Crunchify_Test1.txt ) ;
ObjectOutputStream out знак равно новый ObjectOutputStream (fileOut);
вне. writeObject ( obj ) ;
вне. закрыть ( ) ;
fileOut . закрыть ( ) ;
Система. вне. println ( / nSerialization Successful … Оформить указанный файл вывода ../ n ) ;
} ловить ( FileNotFoundException е ) {
эл . printStackTrace ( ) ;
} ловить ( IOException е ) {
эл . printStackTrace ( ) ;
}
// Давайте десериализовать объект
пытаться {
FileInputStream fileIn знак равно новый FileInputStream ( /Users//Downloads/CrunchifyTest/Crunchify_Test1.txt ) ;
ObjectInputStream в знак равно новый ObjectInputStream ( fileIn ) ;
Система. вне. println ( Десериализованные данные: / n + дюйм readObject ( ) . toString ( ) ) ;
дюйм закрыть ( ) ;
fileIn . закрыть ( ) ;
} ловить ( FileNotFoundException е ) {
эл . printStackTrace ( ) ;
} ловить ( IOException е ) {
эл . printStackTrace ( ) ;
}
}
общественности учебный класс Вещь инвентарь Сериализуемый {
частный строка itemID ;
частный строка desc ;
частный двойной стоимость ;
частный ИНТ количество ;
общественности Элемент ( ) {
Itemid знак равно ;
по убыванию знак равно ;
Стоимость знак равно 0 ;
количество знак равно 0 ;
}
общественности Предмет ( Строка идентификатор , строка г , двойной с , ИНТ q ) {
Itemid знак равно идентификатор ;
по убыванию знак равно г ;
Стоимость знак равно с ;
количество знак равно q ;
}
/ **
* @ вернуть товар
* /
общественности строка getItemID ( ) {
вернуть itemID ;
}
/ **
* @param itemID
* itemID для установки
* /
общественности недействительным setItemID ( String itemID ) {
это. Itemid знак равно itemID ;
}
/ **
* @ возвращение
* /
общественности строка getDesc ( ) {
вернуть desc ;
}
/ **
* @param desc
* описание для установки
* /
общественности недействительным setDesc ( String desc ) {
это. по убыванию знак равно desc ;
}
/ **
* @ Возврат стоимости
* /
общественности двойной getCost ( ) {
вернуть стоимость ;
}
/ **
* @парам стоимость
* стоимость для установки
* /
общественности недействительным setCost ( double стоимость ) {
это. Стоимость знак равно стоимость ;
}
/ **
* @ вернуть количество
* /
общественности ИНТ getQuantity ( ) {
вернуть количество ;
}
/ **
* количество парам
* количество, чтобы установить
* /
общественности недействительным setQuantity ( int количество ) {
это. количество знак равно количество ;
}
/ *
* @see java.lang.Object # toString ()
* /
@Override
общественности строка toString ( ) {
вернуть Item [itemID = + Itemid + , desc = + по убыванию + , стоимость = + Стоимость + , количество = + количество + ] ;
}
}
}

Выход:

Десериализованный выход

1
2
3
4
5
6
7
8
Детали товара . , , , ,
ITEM101 iPad 499,0 1
ITEM102 iPhone 599,0 3
Сериализация успешна . , , Оформить заказ на указанный вами выходной файл . ,
Десериализованные данные :
[ Предмет [ itemID = ITEM101 , desc = iPad , стоимость = 499,0 , количество = 1 ] , Вещь [ itemID = ITEM102 , desc = iPhone , стоимость = 599,0 , количество = 3 ] ]

Список всех учебных пособий по Java и Spring MVC, которые могут вас заинтересовать.

Как сериализовать десериализовать список объектов в Java? Пример сериализации Java

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Простая односвязная реализация списка в Java

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь