● Write code to read the content of the text file input.txt using JAVA. For each line in input.txt, write a new line in the new text file output.txt that computes the answer to some operation on a list of numbers. ● If the input.txt has the following: Min: 1,2,3,5,6 Max: 1,2,3,5,6 Avg: 1,2,3,5,6 Your program should generate output.txt as follows: The min of [1, 2, 3, 5, 6] is 1. The max of [1, 2, 3, 5, 6] is 6. The avg of [1, 2, 3, 5, 6] is 3.4. ● Assume that the only operations given in the input file are min, max and avg, and that the operation is always followed by a list of comma separated integers. You should define the functions min, max and avg that take in a list of integers and return the min, max or avg of the list. ● Your program should handle any combination of operations and any length of input numbers. You can assume that the list of input numbers are always valid integers and that the list is never empty. ● Compile, save and run your file
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
public class Test {
public static void main(String[] args) throws IOException {
FileInputStream fi = new
FileInputStream("input.txt");
FileOutputStream fo = new FileOutputStream("output.txt");
BufferedReader br = new BufferedReader(new
InputStreamReader(fi));
BufferedWriter bw = new BufferedWriter(new
OutputStreamWriter(fo));
String strLine;
while ((strLine = br.readLine()) != null) {
String[] arr = strLine.split(" ");
String[] nos = arr[1].split(",");
Set<Integer> set = new
HashSet<Integer>();
for(int i = 0; i<nos.length; i++){
int no = Integer.parseInt(nos[i]);
set.add(no);
}
TreeSet<Integer> sortedSet = new
TreeSet<Integer>(set);
switch(arr[0]) {
case "Min:":
String msg1="The Min of [" +arr[1]+ "] is "
+(Integer)sortedSet.first();
bw.write(msg1);
bw.newLine();
break;
case "Max:":
String msg2="The Max of [" +arr[1]+ "] is "
+(Integer)sortedSet.last();
bw.write(msg2);
bw.newLine();
break;
case "Avg:":
Object[] noarray = sortedSet.toArray();
int noarraysize = noarray.length-1;
int sum=0;
for(int i=0;i<=noarraysize;i++) {
int no=Integer.valueOf(noarray[i].toString());
sum = sum + no;
if(i==noarraysize) {
String msg3="The Avg of [" +arr[1]+ "] is "
+(double)sum/noarray.length;
bw.write(msg3);
bw.newLine();
}
}
break;
case "Sum:":
Object[] noarray1 = sortedSet.toArray();
int noarraysize1 = noarray1.length-1;
int sum1=0;
for(int i=0;i<=noarraysize1;i++) {
int no=Integer.valueOf(noarray1[i].toString());
sum1 = sum1 + no;
if(i==noarraysize1) {
String msg4="The Sum of [" +arr[1]+ "] is " +sum1;
bw.write(msg4);
bw.newLine();
}
}
break;
}
}
br.close();
bw.close();
}
}
/* input.txt */
/*output.txt*/
Get Answers For Free
Most questions answered within 1 hours.