ReadSequentialFile.java

c:\ece538\ch15\SerializationApps>java ReadSequentialFile
Account   First Name  Last Name      Balance
1000      Alice       White           500.00
1001      Peter       Green          -100.00
1002      Sally       Pink            600.00

No more records

See also Account.java


ReadSequentialFile.java

// Fig. 15.11: ReadSequentialFile.java
// Reading a file of objects sequentially with ObjectInputStream
// and displaying each record.
import java.io.EOFException;     
import java.io.IOException;      
import java.io.ObjectInputStream;
import java.nio.file.Files;
import java.nio.file.Paths;

public class ReadSequentialFile
{
   private static ObjectInputStream input;

   public static void main(String[] args)
   {
      String filename = args.length>0? args[0]: "clients.ser";
      openFile(filename);
      readRecords();
      closeFile();
   } 

   // enable user to select file to open
   public static void openFile(String filename)
   {
      try // open file
      {
         input = new ObjectInputStream(          
            Files.newInputStream(Paths.get(filename)));
      } 
      catch (IOException ioException)
      {
         System.err.println("Error opening file.");
         System.exit(1);
      } 
   }

   // read record from file
   public static void readRecords()
   {
      System.out.printf("%-10s%-12s%-12s%10s%n", "Account",
         "First Name", "Last Name", "Balance");

      try 
      {
         while (true) // loop until there is an EOFException
         {
            Account record = (Account) input.readObject();

            // display record contents
            System.out.printf("%-10d%-12s%-12s%10.2f%n",  
               record.getAccount(), record.getFirstName(), 
               record.getLastName(), record.getBalance());
         } 
      }
      catch (EOFException endOfFileException)
      {
         System.out.printf("%nNo more records%n");
      } 
      catch (ClassNotFoundException classNotFoundException)
      {
         System.err.println("Invalid object type. Terminating.");
      } 
      catch (IOException ioException)
      {
         System.err.println("Error reading from file. Terminating.");
      } 
   } // end method readRecords

   // close file and terminate application
   public static void closeFile()
   {
      try
      {
         if (input != null)
            input.close();
      } 
      catch (IOException ioException)
      {
         System.err.println("Error closing file. Terminating.");
         System.exit(1);
      } 
   } 
} 


Maintained by John Loomis, updated Mon Feb 03 11:44:37 2020