Waiting for answer This question has not been answered yet. You can hire a professional tutor to get the answer.

QUESTION

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.Buf

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]);

  }}

Show more
LEARN MORE EFFECTIVELY AND GET BETTER GRADES!
Ask a Question