public void save(OutputStream outputStream) throws Exception {
PrintWriter writer = new PrintWriter(outputStream);
//users.forEach(u -> System.out.println(u.getFirstName() + " " + u.getLastName() + " " + u.getBirthDate() + " " + u.getCountry().getDisplayedName() + " " + u.isMale()));
String isAssetsEmpty = this.users.isEmpty() ? "yes" : "no";
writer.println(isAssetsEmpty);
if (!this.users.isEmpty()) {
writer.println(this.users.size());
for (User user : this.users) {
writer.println(user.getFirstName() == null ? "null" : user.getFirstName());
writer.println(user.getLastName() == null ? "null" : user.getLastName());
writer.println(user.getBirthDate() == null ? 0 : user.getBirthDate().getTime());
writer.println(user.getCountry() == null ? "null" : user.getCountry().getDisplayedName());
writer.println(user.isMale());
}
}
writer.flush();
}
public void load(InputStream inputStream) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String isAssetsEmpty = reader.readLine();
if (isAssetsEmpty.equals("no")) {
int usersCount = Integer.parseInt(reader.readLine());
List<User> assets = new ArrayList<>();
for (int i = 0; i < usersCount; i++) {
User asset = new User();
String firstName = reader.readLine();
if (!(firstName.equals("null"))) asset.setFirstName(firstName);
String lastName = reader.readLine();
if (!(lastName.equals("null"))) asset.setLastName(lastName);
Long date = Long.parseLong(reader.readLine());
if (!(date == 0)) {
Date birthDay = new Date();
birthDay.setTime(date);
asset.setBirthDate(birthDay);
}
String country = reader.readLine();
if (!(country.equals("null"))) switch (country) {
case "Russia": asset.setCountry(User.Country.RUSSIA);
break;
case "Ukraine": asset.setCountry(User.Country.UKRAINE);
break;
case "Other": asset.setCountry(User.Country.OTHER);
break;
}
boolean male = Boolean.parseBoolean(reader.readLine());
asset.setMale(male);
assets.add(asset);
}
//assets.forEach(u -> System.out.println(u.getFirstName() + " " + u.getLastName() + " " + u.getBirthDate() + " " + u.getCountry().getDisplayedName() + " " + u.isMale()));
this.users = assets;
}
}
Сергей Даниленко
26 уровень
Все работает корректно, но валидация не проходит для второго пункта
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Pavlo Plynko Java-разработчик в CodeGym Expert
30 октября 2017, 13:57
Попробуй с user.setBirthDate(new Date(0L));
+1
Pavlo Plynko Java-разработчик в CodeGym Expert
7 ноября 2017, 16:02
Т.е. в save() в 12 строке надо записывать также "null", например.
И соотв. откорректировать чтение.
+1