В настоящее время я работаю над проектом Java с графическим интерфейсом.У меня есть две формы.Один для регистрации и один для входа.Форма SignUp создает объект «Клиент» или «Сотрудник» на основе ввода пользователя и сохраняет его в файле «.ser».Для моего входа в систему я хочу десериализовать этот файл, сохранив объекты в ArrayList и выполнив поиск по электронной почте и паролю в каждом объекте из этого ArrayList.Если они существуют, вход должен быть успешным.Однако мой код читает только первый объект в файле, а не все.
Вот мой упрощенный код.
//Code for Writing to File. Client Object is created through user input in GUI
try{
Address a1=new Address(Integer.parseInt(houseNumberField.getText()),Integer.parseInt(streetNumberField.getText()),cityField.getText(),provinceField.getText());
Client c1=new Client(firstNameField.getText(),lastNameField.getText(),emailField.getText(),passwordField.getText(),Float.parseFloat(phoneField.getText()),Float.parseFloat(CNICField.getText()),a1);
OutputStream out=null;
ObjectOutputStream outputStream=null;
FileOutputStream fileOut=null;
try
{
fileOut=new FileOutputStream("ClientList.ser",true);
outputStream=new ObjectOutputStream(fileOut);
outputStream.writeObject(c1);
JOptionPane.showMessageDialog (null,"record saved","Information",JOptionPane.INFORMATION_MESSAGE);
}
catch(IOException e)
{
System.out.println("Error while opening file");
}
finally {
try {
if(outputStream != null && fileOut!=null) {
outputStream.close();
fileOut.close();
}
}
catch (IOException e)
{
System.out.println("IO Exception while closing file");
}
}
Код для чтения:
try{
ObjectInputStream x = new ObjectInputStream(new FileInputStream("EmployeeList.ser"));
while(true){
try{
Employee a=(Employee) x.readObject();
System.out.println(a);
e1.add(a);
}
catch(EOFException e)
{
e.printStackTrace();
break;
}
}
}
catch(FileNotFoundException e)
{
} catch (IOException ex) {
return ;
} catch (ClassNotFoundException ex) {
Logger.getLogger(loginGUI.class.getName()).log(Level.SEVERE, null, ex);
}
Выводится только первый объект в файле.