Salve ragazzi! Sono 2 o 3 giorni che batto la testa contro un muro! Il problema è il seguente: Devo scrivere su un file (guestbook.dat) dei dati. Riesco a scrivere i dati ma poi quando vado a leggere i dati dal file quello che riesco a visualizzare è solo il dato che ho scritto al primo inserimento. Ecco il codice

codice:
import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;
import tools.*;



public class Add extends HttpServlet {



 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


  PrintWriter printWriter=response.getWriter();

  response.setContentType("text/html");


  if(
   !Analyzer.isValidForm(
    request.getParameter("username"),
    request.getParameter("electronicMail"),
    request.getParameter("subject"),
    request.getParameter("message")
   )
  ) {

   HttpSession session=request.getSession();
   Post post=new Post(
    request.getParameter("username"),
    request.getParameter("electronicMail"),
    request.getParameter("subject"),
    request.getParameter("message")
   );
   UserError userError=new UserError();

   StringBuffer errorMessage=new StringBuffer("Si è verificato un imprevisto.
Per favore compilare il modulo correttamente.");

   if(!Analyzer.isValidUsername(request.getParameter("username"))) {

    errorMessage.append("
Controllare il campo \"Username\".");
    post.setUsername("");

   }

   if(!Analyzer.isValidElectronicMail(request.getParameter("electronicMail"))) {

    errorMessage.append("
Controllare il campo \"E-mail\".");
    post.setElectronicMail("");

   }

   if(!Analyzer.isValidSubject(request.getParameter("subject"))) {

    errorMessage.append("
Controllare il campo \"Oggetto\".");
    post.setSubject("");

   }

   if(!Analyzer.isValidMessage(request.getParameter("message"))) {

    errorMessage.append("
Controllare il campo \"Messaggio\".");
    post.setMessage("");

   }

   userError.setErrorMessage(errorMessage.toString());
   userError.setURL("/Guestbook/form");

   session.setAttribute("userError", userError);
   session.setAttribute("post", post);

   response.sendRedirect(userError.getURL());

  } else {

   Post post=new Post(
    request.getParameter("username"),
    request.getParameter("electronicMail"),
    request.getParameter("subject"),
    request.getParameter("message")
   );

   Post post2;

   try {

    FileOutputStream fileOutputStream=new FileOutputStream("guestbook.dat", true); // throws FileNotFoundException
    ObjectOutputStream objectOutputStream=new ObjectOutputStream(fileOutputStream); // throws IOException

    objectOutputStream.writeObject(post); // throws IOException

    objectOutputStream.flush();
    objectOutputStream.close();

    FileInputStream fileInputStream=new FileInputStream("guestbook.dat"); // throws FileNotFoundException
    ObjectInputStream objectInputStream=new ObjectInputStream(fileInputStream);

    do {

     post2=(Post)objectInputStream.readObject(); // throws IOException, ClassNotFoundException

     if(post2!=null) {

      printWriter.println(post2.getUsername()+"
");
      printWriter.println(post2.getElectronicMail()+"
");
      printWriter.println(post2.getSubject()+"
");
      printWriter.println(post2.getMessage()+"
");
      printWriter.println("
");
      printWriter.println("
");

     }

    } while(post2!=null);

    objectInputStream.close();

   } catch(Exception exception) {

    HttpSession session=request.getSession();
    UserError userError=new UserError();

    userError.setErrorMessage("Si è verificato un imprevisto. Riprovare o contattare l'amministratore.");
    userError.setURL("/Guestbook/form");

    session.setAttribute("userError", userError);
    session.setAttribute("post", new Post());

    // response.sendRedirect(userError.getURL());
    exception.printStackTrace();

   }


   printWriter.println("No error");
   // response.sendRedirect("/Guestbook/view");

  }



 }



}