public static void main(String[] args) {
try {
File yourFile = new File("....../data.txt");
OutputStream outputStream = new FileOutputStream(yourFile);
InputStream inputStream = new FileInputStream(yourFile);
JavaRush javaRush = new JavaRush();
User user1 = new User();
user1.setFirstName("miroslsv");
user1.setLastName("gavlovich");
Calendar calendar = new GregorianCalendar(1986, Calendar.AUGUST, 26,18, 59, 40);
user1.setBirthDate(calendar.getTime()); // Date
user1.setMale(true);
user1.setCountry(User.Country.OTHER);
User user2 = new User();
user2.setFirstName("mariya");
user2.setLastName("berezhnaya");
Calendar calendar2 = new GregorianCalendar(1980, Calendar.SEPTEMBER, 16,20, 39, 20);
user2.setBirthDate(calendar2.getTime()); // Date
user2.setMale(false);
user2.setCountry(User.Country.UKRAINE);
javaRush.users.add(user1);
javaRush.users.add(user2);
javaRush.save(outputStream); //save
outputStream.flush();
JavaRush loadedObject = new JavaRush(); //loaded
loadedObject.load(inputStream);
outputStream.close();
inputStream.close();
} catch (IOException e) {
//e.printStackTrace();
System.out.println("Oops, something is wrong with my file");
} catch (Exception e) {
//e.printStackTrace();
System.out.println("Oops, something is wrong with the save/load method");
}
}
public static class JavaRush {
public List<User> users = new ArrayList<>();
public void save(OutputStream outputStream) throws Exception {
PrintWriter printWriter = new PrintWriter(outputStream);
for (User user : users) {
printWriter.write(user.getFirstName() + " " + user.getLastName() + " " +
user.getBirthDate().getTime() + " " + user.isMale() + " " + user.getCountry() + "\n");
}
printWriter.close();
}
public void load(InputStream inputStream) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
while (reader.ready()){
User user = new User();
String[] userInfo = reader.readLine().split(" ");
user.setFirstName(userInfo[0]);
user.setLastName(userInfo[1]);
user.setBirthDate(new Date(Long.parseLong(userInfo[2])));
user.setMale(Boolean.parseBoolean(userInfo[3]));
user.setCountry(User.Country.valueOf(userInfo[4]));
users.add(user);
}
reader.close();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
JavaRush javaRush = (JavaRush) o;
return Objects.equals(users, javaRush.users);
}
@Override
public int hashCode() {
return users != null ? users.hashCode() : 0;
}
}
Код проверил на фаиле, всё работает . Как правильнее дату адаптировать в main для проверки ? (не Calendar ) Мирослав
37 уровень
Еще 1 вопрос по адаптации даты
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
KIRAРазработчик в prosv.ruExpert
28 марта 2022, 12:31решение
Вы записываете 5 строк
А читаете одну и пытаетесь ее нарезать
+2
МирославExpert
28 марта 2022, 12:48
Спасибо вам БОЛЬШОЕ!!! Голову сломал на этих задачах! Видать мозг устал.
0
МирославExpert
28 марта 2022, 14:06
Если не очень побеспокою -
Как правильнее дату адаптировать в main для проверки ? (не Calendar )
Ни как не разберу этот класс Date
0
KIRAРазработчик в prosv.ruExpert
28 марта 2022, 14:30решение
Если не использовать календарь и deprecated методы даты, тогда через LocalDateTime
Если использовать deprecated методы
+2