Waiting for answer This question has not been answered yet. You can hire a professional tutor to get the answer.
Revise the threaded sort application to improve the performance by applying one or more of the principles to improve the efficiency of I/O. Provide the improved code.Here is the code:public class Merg
Revise the threaded sort application to improve the performance by applying one or more of the principles to improve the efficiency of I/O. Provide the improved code.Here is the code:public class Merg
Revise the threaded sort application to improve the performance by applying one or more of the principles to improve the efficiency of I/O.
Provide the improved code.
Here is the code:
import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;
public class Sort {
/** * You are to implement this method. The method should invoke one or * more threads to read and sort the data from the collection of Files. * The method should return a sorted list of all of the String data * contained in the files. * * @param files * @return * @throws IOException */ public static void threadedSort(File[] files) throws IOException { //Commenting out to use the multithread /* throw new java.lang.IllegalStateException("Method not implemented"); */ } /** * Given an array of files, this method will return a sorted * list of the String data contained in each of the files. * * @param files the files to be read * @return the sorted data * @throws IOException thrown if any errors occur reading the file */ public static String[] sort(File[] files) throws IOException {
String[] sortedData = new String[0];
for (File file : files) { String[] data = getData(file); data = MergeSort.mergeSort(data); sortedData = MergeSort.merge(sortedData, data); }
return sortedData;
}
/** * This method will read in the string data from the specified * file and return the data as an array of String objects. * * @param file the file containing the String data * @return String array containing the String data * @throws IOException thrown if any errors occur reading the file */ private static String[] getData(File file) throws IOException {
ArrayList<String> data = new ArrayList<String>(); BufferedReader in = new BufferedReader(new FileReader(file));
// Read the data from the file until the end of file is reached while (true) { String line = in.readLine(); if (line == null) { // the end of file was reached break; } else { data.add(line); } } //Close the input stream and return the data in.close(); return data.toArray(new String[0]);
}}