LAB EXERCISE 24: Student Data 2

Goal: In this exercise, you will learn how to:
1. Insert the Main Method (Main Entry Point to the Java Program)
2. Import the Library Classes which allow data to be read from an external text file
    a. import java.io.File
    b. import java.io.FileReader
    c. import java.io.BufferedReader
    d. import java.io.FileNotFoundException
    e. import java.io.IOException
3.  Declare Variables
4.  Create a Void Method
5.  Use a Try-Catch block statement for error file handling and exceptions
6.  Create the Object from the Class
7   Call the Object’s Method

Pre-requisite: You must complete Lab Exercise 23 – Student Data 1.


Program Specifications:
This program reads the data from an external file (studentdata.txt file) and then display the read data results on the console.

In the text file, each line is the student’s data which makes up a single record (row). 

The record will contain 6 fields separated by a “tab” delimiter:  student ID, student first name, last name, course, total points earned and letter grade

A. Pre-requisites:
1. Create a folder on your desktop Exercise-24

2. Launch Java EE- Eclipse
Note:  You will need to use the Java Perspective Workbench for this exercise

3. Setup your Eclipse Workspace to point to the Exercise-24 folder
a. Select File-> Switch Workspace
b. Browse and select your Exercie-24 folder as your Workspace.



B. Requirements:

1.  Create a Java Project and name it as StudentDataPart2

2.  Create the first Class that will have the Main Method

a.       Name the Class as MainApp

b.       Choose the main method to insert into the class

        

3.  Create a class called Data.
 
 

4.  Copy the studentdata.txt file from the Exercise23 folder into the Exercise24/ StudentDataPart 2 subfolder

NOTE:  The studentdata.txt should be copied inside the StudentDataPart2 project folder.

 

 

 

 

 

C. Requirements for the Data Class:

1.  Insert the following Library Classes which will read the data from an external text file:
import java.io.File
import java.io.FileReader
import java.io.BufferedReader
import java.io.FileNotFoundException
import java.io.IOException

 

2.  Create a Void Method - readData() that will execute the code to read the data from an external file – employee.txt
a.  Create instance of the object filename from the File library class & pass the file name “studentdata.txt” as a parameter     

File filename = new File("studentdata.txt");  

 

b.  Use a Try-Catch block to perform error handling if cannot read data from the external file
 b1.  Create an instance of the object "fr" from the FileReader class
        Pass the value of the "filename" as a parameter

FileReader fr = new FileReader(filename);


      b2. Create an instance of object "br" from the BufferredReader library class
            Pass the value of the "fr" object as the parameter

BufferedReader br = new BufferedReader(fr);

 

      b3. Create a local String variable to store the data of each record in the line

String line;


     b4. Use a While Loop to read each record of the text file until the line reaches the end of file.
         i. Store the line containing the student's record into an array
            Pass the tab “\t” delimiter as the parameter in the line.split method used in separating the fields in the record

String [] readLine = line.split("\t");

         ii. Extract the data fields from the array readLine [ ] and store the data into the variables. 
            Use the readLine [ ] array trim method to remove any empty spaces after each field

String id = readLine[0].trim();
String firstName = readLine[1].trim();
String lastName=   readLine[2].trim();
String course = readLine[3].trim();
int totalPoints = Integer.parseInt(readLine[4].trim());              
String letterGrade = readLine[5].trim();

         iii. Display the output on the screen

System.out.print("Student ID: " +  id + "\t");
System.out.print("Student Name: " +  firstName + " " + lastName + "\n");
System.out.print("Course: " + course + "\t");
System.out.print("Total Points: " + totalPoints + "\t") ;
System.out.print("Course Grade: " + letterGrade);
System.out.println();
System.out.println();

    b5. Close the BufferedReader object

br.close();

 

     c. In the 1st Catch-block, add the parameter (FileNotFoundException e)
         Insert the code below to display the error handling message if file cannot be found

System.out.println("File not found: " + filename.toString());

 

     d. In the 2nd Catch-block, add the parameter (IOException e)
         Insert the code below to display the error handling message if file can be read

System.out.println("Unable to read file: " + filename.toString());

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D. Requirements for the MainApp Class:

1.  Add comments (documentation)– Program Description, Author and Date

2.  Create an instance of the object - studentInfo from the Data class:
Data studentInfo = new Data()

3. Call the object's method- writeData:
    studentInfo.readData()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

E. Test:  

1.   Save your Java code

2.   Compile and run your Java program.

3.   Verify there is no syntax, logical or run-time errors.

4.   When you run the Java program, the data will be read from the external file – studentdata.txt
Example:

 

 

 

 

 

 


F. Submit your exercise in the Canvas Lab Exercise #24 Drop Box.

1. Submit the screen shot of the Eclipse Workbench window showing the Console output screen.
You can use Paint (save as JPG) or Word to paste the screenshot.

2.  Submit the studentdata.txt data file.

3. Zip up and submit the compressed StudentDataPart2 subfolder that is in the Exercise-24 folder.
NOTE: Right click on the
subfolder and select Send to “Compress Folder”.  The file will have a file extension of .zip.

        NOTE:   You will need to upload the 3 files above separately.