try {
File yourFile = File.createTempFile("UsersFile", ".txt", new File("C:\\Users\\Nikolai4\\Desktop\\"));
OutputStream outputStream = new FileOutputStream(yourFile);
InputStream inputStream = new FileInputStream(yourFile);
JavaRush javaRush = new JavaRush();
//initialize users field for the javaRush object here - инициализируйте поле users для объекта javaRush тут
User user = new User();
user.setFirstName("Ilia");
user.setLastName("Nikolaev");
user.setBirthDate(new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH).parse("22/05/1988"));
user.setCountry(User.Country.RUSSIA);
user.setMale(true);
javaRush.users.add(user);
javaRush.save(outputStream);
outputStream.flush();
JavaRush loadedObject = new JavaRush();
loadedObject.load(inputStream);
//here check that the javaRush object is equal to the loadedObject object - проверьте тут, что javaRush и loadedObject равны
System.out.println(javaRush.equals(loadedObject));
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 {
//implement this method - реализуйте этот метод
PrintWriter writer = new PrintWriter(outputStream);
// User user = new User();
// user.setFirstName("Ilia");
// user.setLastName("Nikolaev");
// user.setBirthDate(new SimpleDateFormat("dd/MM/yyyy").parse("22/05/1988"));
// user.setCountry(User.Country.RUSSIA);
// user.setMale(true);
// users.add(user);
if (!users.isEmpty()) {
for (User value : users) {
writer.println(value.getFirstName());
writer.println(value.getLastName());
writer.println(value.getBirthDate());
writer.println(value.getCountry().getDisplayName());
writer.println(value.isMale());
}
}
writer.close();
}
public void load(InputStream inputStream) throws Exception {
//implement this method - реализуйте этот метод
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
User user = new User();
while (reader.ready()) {
user.setFirstName(reader.readLine());
user.setLastName(reader.readLine());
user.setBirthDate(new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH).parse(reader.readLine()));
user.setCountry(User.Country.valueOf(reader.readLine()));
user.setMale(Boolean.getBoolean(reader.readLine()));
}
reader.close();
}
Понимаю, что косяк в 3 и 4 строке цикла метода load. Перебрал кучу вариантов, но не понимаю что именно не так.Илья
30 уровень
help
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Avrelio Java Developer
12 ноября 2020, 13:54полезный
new Date(Long.parseLong(reader.line));
-Дата это чисто типа Long
+1
Илья
12 ноября 2020, 13:58
всё равно вылетает исключение "Oops, something is wrong with the save/load method"
0
Avrelio Java Developer
12 ноября 2020, 14:29
ну а в методе value.getBirthDate() что у вас вернет данный код?
0
Avrelio Java Developer
12 ноября 2020, 14:30
не забывайте вы должны записать одни данные и вернуть те же данные
0
Avrelio Java Developer
12 ноября 2020, 14:33решение
+2
Илья
12 ноября 2020, 14:51
Спасибо!
0