Question: Java Write code that reads in your text file. Do NOT use Scanner. Then, the program must write the course objects using ObjectOutputStream (writeObject) to

Java

Write code that reads in your text file. Do NOT use Scanner. Then, the program must write the course objects using ObjectOutputStream (writeObject) to a new binary file. Turn in the program that converts the text file to binary with both binary and text files.

 Java Write code that reads in your text file. Do NOT useScanner. Then, the program must write the course objects using ObjectOutputStream (writeObject)to a new binary file. Turn in the program that converts thetext file to binary with both binary and text files. public static public static void main(String[] args) { CourseList myCourseList = new CourseList(); // Initialize scanner and file. Hard code file name File courseFile = new File("course.txt"); Scanner fileReader = null; // Try statement to catch exceptions / potential bugs. try { fileReader = new Scanner(courseFile); } catch (FileNotFoundException e) { System.out.println("Course(s) not found."); } while (fileReader != null && fileReader.hasNext()) { // Read in a line and parse into various attributes String courseCategory = fileReader.nextLine(); String courseName = fileReader.nextLine(); String crn = fileReader.nextLine(); // Loop to check type if (courseCategory.equals("English")) { String classType = fileReader.nextLine(); String academicClassification = fileReader.nextLine(); // Create ArrayList English tp = new English(courseCategory, courseName, crn, classType, academicClassification); myCourseList.addCourse(tp); } else if (courseCategory.equalsIgnoreCase("Math")) { String temp = fileReader.nextLine(); boolean stem = Boolean.parseBoolean(temp); String classType = fileReader.nextLine(); // Create ArrayList Math tp = new Math(courseCategory, courseName, crn, stem, classType); myCourseList.addCourse(tp); } else if (courseCategory.equalsIgnoreCase("History")) { String temp = fileReader.nextLine(); boolean eligible = Boolean.parseBoolean(temp); String classType = fileReader.nextLine(); // Create ArrayList History tp = new History(courseCategory, courseName, crn, eligible, classType); myCourseList.addCourse(tp); } else { System.out.println("Course unavailable " + courseCategory); } } Scanner sc = new Scanner(System.in); System.out.println("Course Main Menu: "); boolean done = false; while (!done) { System.out.println(""); System.out.println("Please enter a number to continue: "); System.out.println(" 1. View course list"); System.out.println(" 2. Search course by name"); System.out.println(" 3. Search course by CRN"); System.out.println(" 4. Remove course name"); System.out.println(" 5. Remove course CRN"); System.out.println(" 6. Exit"); String tp = sc.nextLine(); int menuInput = Integer.parseInt(tp); // Loop to check type user input. if (menuInput == 1) { myCourseList.printCourseList(); } else if (menuInput == 2) { System.out.println("Enter the name of the course: "); String id = sc.nextLine(); Course item = myCourseList.searchByCourse(id); if (item != null) { System.out.println(item); } else { System.out.println("Course not found."); } } else if (menuInput == 3) { System.out.println("Enter the CRN of the course: "); String id2 = sc.nextLine(); Course item2 = myCourseList.searchByCrn(id2); if (item2 != null) { System.out.println(item2); } else { System.out.println("Course not found."); } } else if (menuInput == 4) { System.out.println("Enter the name of the course to be removed from the list: "); String id3 = sc.nextLine(); myCourseList.removeCourse(id3); System.out.println(id3 + " has been removed from the list."); } else if (menuInput == 5) { System.out.println("Enter the CRN of the course to be removed from the list: "); String id4 = sc.nextLine(); myCourseList.removeCourseCrn(id4); System.out.println(id4 + " has been removed from the list."); } else { done = true; PrintWriter out = null; try { out = new PrintWriter(new File("course.txt")); System.out.println("List updated. Exiting program..."); } catch (FileNotFoundException e) { e.printStackTrace(); } for (Course r : myCourseList.getCourseList()) { out.println(r.getCourseCategory()); out.println(r.getCourseName()); out.println(r.getCrn()); if (r.getCourseCategory().equalsIgnoreCase("English")) { English e = (English) r; out.println(e.getClassType()); out.println(e.getAcademicClassification()); } else if (r.getCourseCategory().equalsIgnoreCase("Math")) { Math m = (Math) r; out.println(m.isStem()); out.println(m.classType()); } else if (r.getCourseCategory().equalsIgnoreCase("History")) { History h = (History) r; out.println(h.isEligible()); out.println(h.classType()); } else { System.out.println("Course category unknown " + r.getCourseCategory()); } } out.close(); } } sc.close(); } }

public class Math extends Course { private boolean isstem; private String classType; //Constructor public Math(String courseCategory, String courseName, String crn, boolean isstem, String classType) { super(courseCategory, courseName, crn); this.isStem = isstem; this.classType = classType; } //Getters / accessors public boolean isStem() { return isstem; } public String classType() { return classType; } //toString method @Override public String toString() { return super.toString() + | STEM Classification: + is Stem + | Class Type: + classType; } public class History extends Course { //Class attributes private boolean isEligible; private String classType; //Constructor public History (String courseCategory, String courseName, String crn, boolean isEligible, String classType) { super (courseCategory, courseName, crn); this.isEligible = isEligible; this.classType = classType; } //Getters / accessors public boolean isEligible() { return isEligible; } public String classType() { return classType; } //toString method @Override public String toString() { return super.toString() + " | Area E Eligible: " + isEligible + " | Class Type: " + classType; public class English extends Course { //Class attributes private String classType; private String academicClassification; //Constructor public English(String courseCategory, String courseName, String crn, String classType, String academicclassification) { super(courseCategory, courseName, crn); this.classType = classType; this.academicClassification = academicClassification; } //Getters accessors public String getClassType() { return classType; } public String getAcademicclassification() { return academicclassification; } //toString method @Override public String toString() { return super.toString() + " | Class Type: } + classType + " | Academic Classification: + academicClassification; public class Course { //Class attributes private String courseCategory; private String courseName; private String crn; //Constructor public Course(String courseCategory, String courseName, String crn) { super(); this.courseCategory = courseCategory; this.courseName = courseName; this.crn = crn; } //Getters / accessors public String getCourseCategory() { return courseCategory; } public String getCourseName() { return courseName; } public String getCrn() { return crn; } //toString method @Override public String toString() { return "Course Category: " + courseCategory + " | Course Name: } courseName + " | Course CRN: " + crn; } public class Math extends Course { private boolean isstem; private String classType; //Constructor public Math(String courseCategory, String courseName, String crn, boolean isstem, String classType) { super(courseCategory, courseName, crn); this.isStem = isstem; this.classType = classType; } //Getters / accessors public boolean isStem() { return isstem; } public String classType() { return classType; } //toString method @Override public String toString() { return super.toString() + | STEM Classification: + is Stem + | Class Type: + classType; } public class History extends Course { //Class attributes private boolean isEligible; private String classType; //Constructor public History (String courseCategory, String courseName, String crn, boolean isEligible, String classType) { super (courseCategory, courseName, crn); this.isEligible = isEligible; this.classType = classType; } //Getters / accessors public boolean isEligible() { return isEligible; } public String classType() { return classType; } //toString method @Override public String toString() { return super.toString() + " | Area E Eligible: " + isEligible + " | Class Type: " + classType; public class English extends Course { //Class attributes private String classType; private String academicClassification; //Constructor public English(String courseCategory, String courseName, String crn, String classType, String academicclassification) { super(courseCategory, courseName, crn); this.classType = classType; this.academicClassification = academicClassification; } //Getters accessors public String getClassType() { return classType; } public String getAcademicclassification() { return academicclassification; } //toString method @Override public String toString() { return super.toString() + " | Class Type: } + classType + " | Academic Classification: + academicClassification; public class Course { //Class attributes private String courseCategory; private String courseName; private String crn; //Constructor public Course(String courseCategory, String courseName, String crn) { super(); this.courseCategory = courseCategory; this.courseName = courseName; this.crn = crn; } //Getters / accessors public String getCourseCategory() { return courseCategory; } public String getCourseName() { return courseName; } public String getCrn() { return crn; } //toString method @Override public String toString() { return "Course Category: " + courseCategory + " | Course Name: } courseName + " | Course CRN: " + crn; }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!