Project1.java Main( ) //Boyd, Timmothy package Project_1; import java.lang.*; import java.io.*; import java.util.*; public class Project1 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println( "Please enter the first file name:"); String fileName1 = input.nextLine(); //CHECKS TO SEE IF FILES ARE SORTED, IF NOT PROGRAM TERMINATES if(checkSorted(fileName1) == false){ System.out.println("TERMINATING, FILE NOT SORTED"); FileUnsorted.Error(); } System.out.println( "Please enter the second file name:"); String fileName2 = input.nextLine(); if(checkSorted(fileName2) == false){ System.out.println("TERMINATING, FILE NOT SORTED"); FileUnsorted.Error(); } //MERGE OPERATION try { //PREPARES A NEW FILE TO HOLD MERGED FILES File file2 = null; file2 = new File ("Sorted.txt"); FileWriter file_writer = new FileWriter (file2); BufferedWriter buf_writer = new BufferedWriter (file_writer); PrintWriter print_writer = new PrintWriter (buf_writer,true); //THIS IS THE FIRST SORTED FILE File file_1 = new File(fileName1); FileReader reader1 = new FileReader(file_1); BufferedReader in1 = new BufferedReader(reader1); //HERE IS THE SECOND SORTED FILE File file_2 = new File(fileName2); FileReader reader2 = new FileReader(file_2); BufferedReader in2 = new BufferedReader(reader2); //THIS CREATES TWO POLYNOMIAL OBJECTS Polynomial Poly1 = Polynomial.input(in1); Polynomial Poly2 = Polynomial.input(in2); //WHILE THERE IS ANOTHER COMPARISSON TO MAKE while((Polynomial.input(in1) != null) && (Polynomial.input(in2) != null) ){ //THIS WILL WRITE THE FIRST POLY TO THE NEW TEXT FILE IF IT IS THE LARGER OF THE TWO if(Poly1.compareTo(Poly2)){ print_writer.println (Poly1.toString()); //PRINTS THE OUTPUT TO THE SCREEN AS WELL AS THE NEW TEXT FILE System.out.println(Poly1.toString()); //THEN GET A NEW POLYNOMIAL FOR THE TEXT FILE Poly1 = Polynomial.input(in1); } else{ //IF THE SECOND TEXT FILE'S POLYNOMIAL IS THE BIGGEST OF THE TWO print_writer.println (Poly2.toString()); //PRINTS THE OUTPUT TO THE SCREEN AS WELL AS THE NEW TEXT FILE System.out.println(Poly2.toString()); //THEN GET A NEW POLYNOMIAL FOR THE TEXT FILE Poly2 = Polynomial.input(in2); } if (print_writer.checkError ()) { System.out.println ("An output error occurred!" ); } } }catch (IOException e) { e.printStackTrace(); } } //CHECK SORTED METHOD USED TO CHECK AND MAKE SURE BOTH FILES ARE SORTED public static boolean checkSorted(String fileName){ try { File file = new File(fileName); FileReader reader = new FileReader(file); BufferedReader in = new BufferedReader(reader); Polynomial current = Polynomial.input(in); Polynomial previous = Polynomial.input(in); boolean compares = true; //WHILE THE FILE IS NOT AT IT'S END, AND WHILE THE FILE IS STILL IN ORDER while((Polynomial.input(in)) != null){ while(compares){ current = previous; previous = Polynomial.input(in); compares = current.compareTo(previous); } //IF THE FILE IS NOT IN ORDER, RETURN FALSE if (compares == false){ return false; } } //CLOSE THE FILE in.close(); } catch (IOException e) { e.printStackTrace(); } //THE FILE LOOKS GOOD, SO TRUE IS RETURNED return true; } }
FileUnsorted.java //Boyd, Timmothy package Project_1; public class FileUnsorted { public static void Error() { //EXITS IN CASE OF A FILE UNSORTED ERROR System.exit(0); } }