Создаю небольшое приложение, при нажатии на кнопку регистрации создается объект.
public void actionPerformed(ActionEvent e) {
if(tfLogin.getText().length()>=0 && tfPassword.getText().length()>=0 && tfPasswordTwo.getText().equals(tfPassword.getText())){
AllGamers.saveAccaunt(new LoginAndPass(tfLogin.getText(), tfPassword.getText()));
}
Потом объект сохраняется в файл:
public static void saveAccaunt(LoginAndPass gamers){
try {
FileOutputStream fileOutputStream = new FileOutputStream("SaveAc",true);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
objectOutputStream.writeObject(gamers);
} catch (IOException e) {
e.printStackTrace();
}
}
Тут работает всё нормально, когда считываю файл тоже всё нормально:
try {
FileInputStream fileInputStream = new FileInputStream("SaveAc");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
Object o = objectInputStream.readObject();
LoginAndPass l1 = (LoginAndPass) o;
System.out.println(l1.getLogin());
System.out.println(l1.getPassword());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
Проблема заключается в том, что когда хочу в файл добавить ещё один аккаунт, то есть ещё один объект, вроде оно его добавляет, но когда пытаюсь их считать то выдаёт ошибку:
try {
FileInputStream fileInputStream = new FileInputStream("SaveAc");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
Object o = objectInputStream.readObject();
LoginAndPass l1 = (LoginAndPass) o;
System.out.println(l1.getLogin());
System.out.println(l1.getPassword());
Object o1 = objectInputStream.readObject();
LoginAndPass l2 = (LoginAndPass) o1;
System.out.println(l2.getLogin());
System.out.println(l2.getPassword());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
Вот код ошибки:
java.io.StreamCorruptedException: invalid type code: AC
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1601)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
at Registratsiya.AllGamers.main(AllGamers.java:32)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости