Не проходит по второму пункту . У себя все работает
package com.javarush.task.task20.task2002;
import java.io.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/*
Читаем и пишем в файл: JavaRush
*/
public class Solution {
public static void main(String[] args) {
//you can find your_file_name.tmp in your TMP directory or adjust outputStream/inputStream according to your file's actual location
//вы можете найти your_file_name.tmp в папке TMP или исправьте outputStream/inputStream в соответствии с путем к вашему реальному файлу
try {
//File yourFile = new File("C:\\Users\\Sagash\\projects\\study\\src\\kz\\javarush\\Lion.avi.part1");
File yourFile = File.createTempFile("your_file_name", null);
OutputStream outputStream = new FileOutputStream(yourFile);
InputStream inputStream = new FileInputStream(yourFile);
JavaRush javaRush = new JavaRush();
// javaRush.users = new ArrayList<>();
// User user = new User();
// user.setFirstName("Argyn");
// user.setLastName("Sagash");
// Calendar calendar = new GregorianCalendar(2017, 0 , 25);
// Date date = calendar.getTime();
// user.setBirthDate(date);
// user.setMale(true);
// user.setCountry(User.Country.RUSSIA);
// javaRush.users.add(user);
//
// User user2 = new User();
// user2.setFirstName("Ainur");
// user2.setLastName("Smoidt");
// Date date2 = new Date(1212121212121L);
// user2.setBirthDate(date2);
// user2.setMale(false);
// user2.setCountry(User.Country.UKRAINE);
// javaRush.users.add(user2);
//initialize users field for the javaRush object here - инициализируйте поле users для объекта javaRush тут
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 равны
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;
public void save(OutputStream outputStream) throws Exception {
char isAssertPresent = this.users != null ? 'y' : 'n';
outputStream.write(isAssertPresent);
outputStream.flush();
if (this.users != null) {
for (User u : this.users) {
char[] gfn = u.getFirstName().toCharArray();
char[] gln = u.getLastName().toCharArray();
char[] gbd = (String.valueOf(u.getBirthDate().getTime())).toCharArray();
char[] ism = (u.isMale() ? "true" : "false").toCharArray();
char[] gc = u.getCountry().getDisplayName().toCharArray();
for (char c : gfn) {
outputStream.write(c);
}
outputStream.write(' ');
for (char c : gln) {
outputStream.write(c);
}
outputStream.write(' ');
for (char c : gbd) {
outputStream.write(c);
}
outputStream.write(' ');
for (char c : ism) {
outputStream.write(c);
}
outputStream.write(' ');
for (char c : gc) {
outputStream.write(c);
}
outputStream.write(' ');
}
}
outputStream.flush();
}
public void load(InputStream inputStream) throws Exception {
String isAssertPresent = String.valueOf((char) inputStream.read());
if (isAssertPresent.equals("y")) {
StringBuilder sb = new StringBuilder();
while (inputStream.available() > 0) {
int count = inputStream.read();
sb.append((char) count);
}
String[] s = sb.toString().split(" ");
// for (int i = 0; i < s.length; i++) {
// System.out.print(s[i]);
// }
this.users = new ArrayList<User>();
for (int i = 0; i < s.length; i = i + 5) {
User u = new User();
//System.out.println(s[i]);
u.setFirstName(s[i]);
// System.out.println(s[i + 1]);
u.setLastName(s[i + 1]);
//System.out.println(s[i + 2]);
Date date = new Date(Long.parseLong(s[i + 2]));
//System.out.println(date);
u.setBirthDate(date);
if (s[i + 3].equals("true")) {
u.setMale(true);
} else u.setMale(false);
//System.out.println(s[i + 3]);
if (User.Country.RUSSIA.getDisplayName().equals(s[i + 4])) {
u.setCountry(User.Country.RUSSIA);
} else if (User.Country.UKRAINE.getDisplayName().equals(s[i + 4])) {
u.setCountry(User.Country.UKRAINE);
} else u.setCountry(User.Country.OTHER);
//System.out.println(s[i + 4]);
this.users.add(u);
}
// for(User t: this.users){
// System.out.println(t.getFirstName());
// }
}
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
JavaRush javaRush = (JavaRush) o;
return users != null ? users.equals(javaRush.users) : javaRush.users == null;
}
@Override
public int hashCode() {
return users != null ? users.hashCode() : 0;
}
}
}