lab 13 5 1 2

background image

Lab 13.5.1.2 Reading Customer Objects from a File


Estimated Time: 20 minutes

Learning objectives:

• In this lab activity, the student will read the Customer objects saved in the previous lab

using the ObjectInputStream.

Description/Business Rules:

• Create a class called CustomerFileReader to read customer objects from the file

“customer.dat”. The CustomerFileReader will have a method called readCustomers().

This method reads the customers stored in the file.


File Management:

Open BlueJ. Click on Project from the BlueJ main menu and select New. In the New
Project window and in the Look in: list box select c:\. Now, double click the javacourse
folder listed in the text window and a different New Project window opens with javacourse
in the Look in: list box. Now, double click the chap13 folder listed in the text window and a
different New Project window opens with chap13 in the Look in: list box. Type lab13.5.1.2
in the File name text box and click on Create to create a lab13.5.1.2 subfolder in the
chap13 folder. Import the JBANK classes from lab13.5.1.1.


Task:

Step 1 Reading Customer objects from the “c:\\customer.dat” file

a. To read objects from a file make use of ObjectInputStream. For this purpose the

Customer class and Account class should implement the interface Serializable. This is
already defined from the previous lab.

b. Using BlueJ create a class called CustomerFileReader. Define attributes to store

references to File, ObjectInputStream and FileInputStream objects. Implement a method
called readCustomers() that returns an array of Customer objects. This method

should throw an Exception if the file does not exist. In this method create a File object
called objectFile for the “customer.dat” file. Use File class methods to check if the
“customer.dat” file already exists. Read the Customer objects from the file. If the file
does not exist, throw an instance of the Exception object, setting the message of the
exception to display “ File does not exist”. You can do this with the following syntax:

throw new Exception(objectFile.getName() + " File does not exist");


(Note: If you created the file customer.dat in a different directory or under a different
name, you should modify your code to reflect this.)

c. The class holds a reference to an array of customers. The maximum number of

customers can be set using:

Customer[] customers = new Customer[Bank.maxNumOfCustomers];


d. In

a

try-catch block, read the Customer objects from the file. To read the Objects,

create an instance of ObjectInputStream. The constructor of the ObjectInputStream takes
an argument of type FileInputStream. Create an instance of FileInputStream called
fileInputStream and use the objectFile as the argument to the constructor. Use

FileInputStream object as an argument to create an instance of ObjectInputStream called
objectInputStream. Use try and catch blocks to handle the IOException and
ClassNotFoundException.

1 - 3

Fundamentals of Java Programming Lab 13.5.1.2

Copyright

 2003, Cisco Systems, Inc.

background image

e. In a loop, use the readObject() method of the ObjectInputStream and read the

Customer objects into a Customer array. The read method returns a reference to an
instance of the Object class. Include a cast expression to cast the object to that of a
Customer class. In the catch block (if the no objects read) rethrow the IOException.
The last statement of this method must return a reference to the Customer array. Do not
place this in the try block. Place it after the definition of the catch block or in the
finally block.

f. In the Teller class main method of the class, create a reference to a Customer[] array,

setting the size to the maxNumberOfCustomers static variable of the Bank class.
Create an instance of the CustomerFileReader class identified by custFileReader.
Call the readCustomers() method of the CustomerFileReader object referenced by
custFileReader. This method returns a reference to the Customer array object.

Assign this value to the Customer array object.

g. Include

a

for loop to traverse through the array. Keep in mind that you may not have

created the maximum number of customers. Be sure to include some tests that end the
loop if the Customer array element is null. The System.out.println() statement can

print each Customer object. If you will recall the Customer class overrides the
toString() method.

Step 2 Documentation

Using the Document “How to use UMLTestTool”, follow the instructions to verify your JBANK
classes match the JBANK UML diagram shown below.

a. Write javadoc comments to the classes introduced in this lab.







2 - 3

Fundamentals of Java Programming Lab 13.5.1.2

Copyright

 2003, Cisco Systems, Inc.

background image

3 - 3

Fundamentals of Java Programming Lab 13.5.1.2

Copyright

 2003, Cisco Systems, Inc.


Document Outline


Wyszukiwarka

Podobne podstrony:
lab 13, Notatki, FIZYKA, SEMESTR II, laborki, lab
a, lab.13, Laborka 13
Lab 13
Lab 13 - rossi, Politechnika Śląska
lab 13, 9.2.1.10 Packet Tracer Configuring Standard ACLs Instructions
Lab 13 - Przewodzenie ciepła, laborka 13, Cel ?wiczenia
Lab 13 - Przewodzenie ciepła, skaly13
lab 13 8 1
Lab 13 id 257441 Nieznany
Lab 13 14 15 16 Multimedia Klasa 4 2011 2012 Lista4, Informatyka, Technikum, Grafika
LAB 13 SSANIE OPIS, sgsp, Hydromechanika, HYDROMECHANIKA 1
PW LAB 13
lab 13
LAB 13, TARASIUK
NS1 lab 8 3 13 en Configure Cisco IOS Firewall CBAC
Lab 13 - Przewodzenie ciepła, laborka 13, Imię i nazwisko
IE RS lab 13 solutions
fiz lab 13

więcej podobnych podstron