这样试一试:
<%
String  path = request.getRealPath(".");
FileReader fr = new FileReader(path + "MessageData.dat");
BufferedReader br = new BufferedReader(fr);
String message = br.readLine();///////////////////////added 
while( message !=null )///////////////////////////////modified
{
StringTokenizer msg  = new StringTokenizer(message,"||");
String guestName = msg.nextToken();
String guestEmail = msg.nextToken();
String guestMessage = msg.nextToken();         message = br.readLine();///////////////////added
%>
<table width="70%" border="1" cellspacing="1" cellpadding="1" align="center">
  <tr> 
    <td width="23%" height="121"><%=guestName%></td>
    <td width="77%" height="121"><%=guestMessage%></td>
  </tr>
  <tr>
    <td width="23%"><%=guestEmail%></td>
    <td width="77%">&nbsp;</td>
  </tr>
</table>
<%
}
%>不要写成C风格的代码,容易出错,可读性也不好。