Question: Write a program that reads a CSV file, sorts a list of integers on each row, and prints a comma separated list of sorted integers

Write a program that reads a CSV file, sorts a list of integers on each row, and prints a comma separated list of sorted integers on the console.
The program should prompt the user to enter a file name, then should open the file in text mode and read. Input files are assumed to be in CSV format. Input files contain a list of integers on each line separated by commas. The program should read each line, sort the numbers and print the comma separated list of integers on the console. Each sorted list of integers from the same line should be printed together on a single line on the console (see below for test cases).
While entering the file name, the program should allow the user to type quit to exit the program.
If the file with a given name does not exist, then display a message and allow the user to re-enter the file name.
If a file with a given name exists, then your program should process it, should print the results and exit.
On each line the input file may contain any number of integers. You may use arrays or ArrayList objects in your program.
You may choose to use any of the sorting algorithms (provided in a class file called Sort.java for your convenience). All sorting methods work with arrays as well as ArrayLists. Sort.java file is already uploaded and you dont need to upload it again with your submission. You should only upload one file: FileSorting.java. You can download the Sort.java file and use it on your computer for testing your program.
Input validation:
a) If the file does not exist, then you should display a message "File somefile.txt is not found." and allow the user to re-enter the file name.
b) If the file is empty, then display a message "File somefile.txt is empty." and exit the program.
Hints:
a) Perform file name input validation immediately after the user entry and use a while loop.
b) You can use either StringTokenizer class or String.split() method to separate each line into tokens. Its also possible to use a string Scanner, if you know how to do it.
c) All tokenization methods mentioned above will give you strings. You will need to sort the array or ArrayList as numbers, so you need to do a conversion from string array (or ArrayList) into an integer array (or ArrayList).
d) For each line, create an array of integers and populate with the numbers from that line.
e) Use either one of the Sort.insertionSort(), Sort.selectionSort (), or Sort.bubbleSort () methods to sort integers.
f) If you know how to use String.join() or Arrays.sort() methods, feel free to use them, but you dont have to use them.
input2x2.csv
-67,-11
-27,-70
input1.csv
10
input10x10.csv
56,-19,-21,-51,45,96,-46-27,29,-58,85,8,71,3450,51,40,50,100,-82,-87-47,-24,-27,-32,-25,46,88-47,95,-41,-75,85,-16,43-78,0,94,-77,-69,78,-25-80,-31,-95,82,-86,-32,-2268,-52,-4,-68,10,-14,-8926,33,-59,-51,-48,-34,-52-47,-24,80,16,80,-66,-42
input0.csv
This FIle is Blank!
Sort.java
import java.util.ArrayList; public class Sort { public static > void insertionSort(E[] array){ for (int i =1; i < array.length; i++){ for (int j = i; j >0 && array[j].compareTo(array[j -1])<0; j--){ swap(array, j, j -1); }}} public static > void insertionSort(ArrayList arrayList){ for (int i =1; i < arrayList.size(); i++){ for (int j = i; j >0 && arrayList.get(j).compareTo(arrayList.get(j -1))<0; j--){ swap(arrayList, j, j -1); }}} public static > void bubbleSort(E[] array){ for (int i =0; i < array.length -1; i++){ for (int j = array.length -1; j > i; j--){ if (array[j].compareTo(array[j -1])<0){ swap(array, j, j -1); }}}} public static > void bubbleSort(ArrayList arrayList){ for (int i =0; i < arrayList.size()-1; i++){ for (int j = arrayList.size()-1; j > i; j--){ if (arrayList.get(j).compareTo(arrayList.get(j -1))<0){ swap(arrayList, j, j -1); }}}} public static > void selectionSort(E[] array){ for (int i =0; i < array.length -1; i++){ int lowindex = i; for (int j = array.length -1; j > i; j--) if (array[j].compareTo(array[lowindex])<0) lowindex = j; swap(array, i, lowindex); }} public static > void selectionSort(ArrayList arrayList){ for (int i =0; i < arrayList.siz

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 Programming Questions!