Читаем и пишем в файл: Human

  • 11
  • Недоступна
Учимся влиять на человеческие существа с помощью внешних файлов… Или просто реализуем логику записи в файл и чтения из файла для класса Human. Помните, поле name в классе Human не может быть пустым. Ну а метод main реализован только для вас, и не участвует в тестировании.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (188)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Андрей Вайно24 уровень, Tallinn
14 октября, 11:21
Не пойму, зачем эт, если всего хумана можно записать, как объект... муть Делал через BafRead/Write первая строка имя, еси ноль, то эмпти. Дальше в одну строку весь аррайлист, разделяя поля одного обжекта = и поля разных обжектов : Тож самое если стринг нулёвый, то записывал эмпти. Ну а дальше всё прост.
LuneFox22 уровень, Москва
13 октября, 16:40
Сохранял так:
Ivanov
2
home
999999.99
car
2999.99
Число после имени - количество ассетов, которое есть у хьюмана. В загрузке считывал имя, затем это число, и прогонял цикл чтения ассетов именно это количество раз. Соответственно, если ассетов было 0, то и при загрузке цикл не сработает ни разу:
Ivanov
0
LuneFox22 уровень, Москва
13 октября, 16:45
Кстати, IDEA навязчиво предлагает вместо этого
if (name != null ? !name.equals(human.name) : human.name != null) return false;
return assets != null ? assets.equals(human.assets) : human.assets == null;
написать так:
if (!Objects.equals(name, human.name)) return false;
return Objects.equals(assets, human.assets);
Так ведь и правда понятней.
Vladimir Nasarov20 уровень, Самара
31 октября, 11:59
число asset можно было опустить, если в load использовать Strig []. Тогда, если длина массива больше одного - asset есть, и заполняем assets до конца.
Ольга22 уровень, Москва
9 октября, 15:10
ребят, я не знаю, что за гениальные люди решили эту задачу с первого раза. я кипела 3 дня)))
Валентин Кудинов26 уровень, Самара
21 сентября, 19:30
Неожиданно но решил с первого раза. Решил через Buf Reader"ы
Kirill Kushnaryov28 уровень, Barnaul
21 сентября, 10:36
создаём DataOutputStream в методе save и DataInputStream в методе load далее в методе save с помощью DOS по порядку пишем сначала имя, затем длину массива, и сам массив (с проверками на null конечно). затем то же делаем в методе load с помощью DIS. готово
Igor Zip23 уровень, Одесса
18 сентября, 15:30
ЭТО КАКОЙ_ТО ПИЗДЕЦ!!!!!
Константин Петров25 уровень, Москва
10 сентября, 05:54
Может я не прав, но с первого раза сдать не получилось кажется из-за того, что в случае пустого List в файл кроме имени я ничего не писал. Когда же я в случае пустого List написал в файл две строки "No", то все прошло.
Павел Минеев41 уровень, Челябинск
1 сентября, 16:58
Сдал с первого раза и почти горд собой. "Почти" из-за того, что лень было реализовывать корректный load в случае если имя состоит из нескольких слов, разделенных пробелами, но валидатор и так схавал.
Nordis26 уровень, Санкт-Петербург
25 августа, 21:25
Условия прочитал , ничего не понял. Посмотрел задачу , ужаснулся ! Думаю ... так ... , надо бы вникнуть чё за движуха тут. Увидел что Ivanov юзает метод save , а второй somePerson юзает load . Думаю , ага значит сохраняем Иванова и загружаем в somePerson . и тут картина начала проявляться . Поначалу тупанул , вписал разные имена файлов в Input and output srem' ы . И думаю что это он не загружает . Хаха дейсвительно , с чего бы (lol) ! Реализовать методы save and load мне помог самый популярный коммент . Вообщем с первой попытки . Удачи вам !
Максим29 уровень, Черкассы
22 августа, 09:58
Не забываем закрывать поток записи, а то будет NullPointerException