Содержание
Как мне записать объект в файл и прочитать его обратно?
Java довольно удивительна с большим количеством API, а с Java 8 мы полностью задействованы с большим количеством API, таких как лямбда , ссылка на метод, методы по умолчанию, интерфейс с улучшенным типом , повторяющиеся аннотации , отражения параметров метода и многое другое.
Некоторое время назад я написал статью о том, как читать объект JSON из файла в Java. Это была простая операция чтения Java. Но в этом уроке мы собираемся save and load данные из файла с простой производственной готовой утилитой Java .
Мы не только сохраняем простой объект, но и создаем простой Java POJO типа CrunchifyCompany и собираемся сохранять и извлекать объект, используя GSON , Для запуска нижеуказанной программы вам нужна зависимость ниже.
Поставьте ниже зависимость от вашего проекта Maven . Если у вас есть Dynamic Web Project и вы хотите преобразовать его в проект Maven, выполните следующие действия .
|
1
2
3
4
5
|
< зависимость >
< groupId > ком . Google. код. gson < / groupId >
< artifactId > gson < / artifactId >
< версия > 2.3 < / версия >
< / зависимость >
|
Вот поток:
- Создать класс
CrunchifyReadWriteUtilityForFile.java - Создать приватный внутренний класс
CrunchifyCompanyс двумя полями- частный инт
employees; - приватная строка
companyName;
- частный инт
- Создать объект
crunchifyвнутри основной метод - Конвертировать объект в
Gsonпоэтому он будет сохранен в файл - Используйте метод
crunchifyWriteToFileсохранить данные в файл на Java - Используйте метод
crunchifyReadFromFileизвлечь данные из файла в 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
|
пакет crunchify. ком . учебник ;
Импортировать Java. Ио. BufferedWriter ;
Импортировать Java. Ио. Файл ;
Импортировать Java. Ио. FileInputStream ;
Импортировать Java. Ио. FileWriter ;
Импортировать Java. Ио. IOException ;
Импортировать Java. Ио. InputStreamReader ;
Импортировать ком . Google. gson. Гсон ;
Импортировать ком . Google. gson. поток. JsonReader ;
/ **
* @author Crunchify.com
* Лучшая и простая производственная готовая утилита для сохранения / загрузки
* (чтение / запись) данных из / в файл
* /
общественности учебный класс CrunchifyReadWriteUtilityForFile {
частный статический строка crunchify_file_location знак равно /Users/appshah/Documents/crunchify.txt ;
частный статический Гсон Гсон знак равно новый Гсон ( ) ;
// CrunchifyComapny Класс с двумя полями
// — Сотрудники
// — Название компании
частный статический учебный класс CrunchifyCompany {
частный ИНТ сотрудники ;
частный строка companyName ;
общественности ИНТ getEmployees ( ) {
вернуть сотрудники ;
}
общественности недействительным setEmployees ( int сотрудники ) {
это. сотрудников знак равно сотрудники ;
}
общественности строка getCompanyName ( ) {
вернуть companyName ;
}
общественности недействительным setCompanyName ( String companyName ) {
это. название компании знак равно companyName ;
}
}
// Основной метод
общественности статический недействительным main ( Строка [ ] аргументы ) {
CrunchifyCompany crunchify знак равно новый CrunchifyCompany ( ) ;
crunchify. setCompanyName ( Crunchify.com ) ;
crunchify. setEmployees ( 4 ) ;
// Сохранить данные в файл
crunchifyWriteToFile ( gson . toJson ( crunchify ) ) ;
// Получить данные из файла
crunchifyReadFromFile ( ) ;
}
// Сохранить в файл Utility
частный статический недействительным crunchifyWriteToFile ( String myData ) {
Файл crunchifyFile знак равно новый Файл ( crunchify_file_location ) ;
если (! CrunchifyFile. Существует ()) {
пытаться {
Файловый каталог знак равно новый Файл (crunchifyFile GetParent ().);
если ( ! каталог . существует ( ) ) {
каталог . mkdirs ( ) ;
}
crunchifyFile . createNewFile ( ) ;
} ловить ( IOException е ) {
журнал ( Исключение произошло: + эл . toString ( ) ) ;
}
}
пытаться {
// Удобный класс для записи символьных файлов
FileWriter crunchifyWriter ;
crunchifyWriter знак равно новый FileWriter ( crunchifyFile . GetAbsoluteFile ( ) , правда ) ;
// Записывает текст в поток вывода символов
BufferedWriter bufferWriter знак равно новый BufferedWriter ( crunchifyWriter ) ;
bufferWriter . запись ( myData . toString ( ) ) ;
bufferWriter . закрыть ( ) ;
журнал ( «Данные компании сохранены в папке с файлом:» + crunchify_file_location + Данные: + мои данные + / n ) ;
} ловить ( IOException е ) {
log ( «Хм .. Произошла ошибка при сохранении данных компании в файл» + эл . toString ( ) ) ;
}
}
// Чтение из файловой утилиты
общественности статический недействительным crunchifyReadFromFile ( ) {
Файл crunchifyFile знак равно новый Файл ( crunchify_file_location ) ;
если (! CrunchifyFile. Существует ())
log ( «Файл не существует» ) ;
InputStreamReader isReader ;
пытаться {
isReader знак равно новый InputStreamReader ( новый FileInputStream ( crunchifyFile ) , UTF-8 ) ;
JsonReader myReader знак равно новый JsonReader ( isReader ) ;
CrunchifyCompany компания знак равно gson. fromJson ( myReader , CrunchifyCompany . класс ) ;
журнал ( «Название компании:» + компания. getCompanyName ( ) ) ;
целое число работник знак равно компания. getEmployees ( ) ;
log ( Количество сотрудников: + сотрудник . toString ( ) ) ;
} ловить ( Исключение е ) {
log ( «ошибка загрузки кеша из файла» + эл . toString ( ) ) ;
}
log ( / nComapny Данные успешно загружены из файла + crunchify_file_location ) ;
}
частный статический недействительным log ( Строка строка ) {
Система. вне. println ( строка ) ;
}
}
|
Выход консоли Eclipse:
|
1
2
3
4
5
6
|
Данные компании, сохраненные в расположении файла : / Пользователи / Appshah / Документы / crunchify . Данные TXT : { сотрудники : 4 , companyName : Crunchify.com }
Название компании : Crunchify. ком
Количество работников: 4
Comapny Данные успешно загружены из файла / Пользователи / Appshah / Документы / crunchify . текст
|
Вот содержимое файла crunchify.txt.
Как я запускал программу two times вы видите здесь JSONObject два раза, как мы добавляем значение к crunchify.txt файл.
0.00 (0%) 0 votes








