What is wrong with my program?
// part of the Main function
Student[] cRecord = new Student[30]; // max no. of
students are 30
for(int i = 0; i<cRecord.length;i++){
cRecord[i] = new Student();
}
Scanner input = new Scanner(System.in);
int choice = input.nextInt();
switch(choice){
case 1:
{
try{
System.out.println("Please input the file
name");
Scanner userin = new Scanner(System.in);
String filename = userin.next();
userin.nextLine();
File inputfile = new File(filename);
if (!inputfile.exists()){
throw new FileNotFoundException("File
not file" + filename);
}
readFile(inputfile, cRecord);
Arrays.sort(cRecord,new
NameComparator()); // error occurs here
userin.close();
}
catch (FileNotFoundException ex){
System.err.println(ex);
}
}
break;
.....
}
/*****************************readFile function--
***************************************/
static void readFile(File inputfile,Student[] stds){
try{
FileInputStream fis = new FileInputStream(inputfile);
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream fileinput = new DataInputStream(bis);
BufferedReader br = new BufferedReader(new
InputStreamReader(fileinput));
String read;
int i = 0;
while((read=br.readLine())!=null){
if(read.contains("Student ID = ")){
System.out.println("Student ID");
String caid =
read.substring(read.lastIndexOf("=") + 1);
int aid = Integer.parseInt(caid);
stds[i].setAccId(aid);
}
else if(read.contains("Name = ")){
System.out.println("Name");
String cname =
read.substring(read.lastIndexOf("=") + 1);
char[] name =
cname.toUpperCase().toCharArray();
stds[i].setName(name);
}
else if(read.contains("Address = ")){
System.out.println("Address");
String caddress =
read.substring(read.lastIndexOf("=") + 1);
char[] add = caddress.toCharArray();
stds[i].setAddress(add);
}
}
fileinput.close();
}
catch (IOException ex){
System.err.println(ex);
}
}
/*****************************NameComparator class********************
package lab2;
import java.util.Comparator;
public class NameComparator implements Comparator{
public int compareObject(Object cust, Object anotherStudent){
char[] shortName1 = ((Student) cust).getName();
char[] shortName2 = ((Student) anotherStudent).getName();
String sName1 = new String(shortName1);
String sName2 = new String(shortName2);
if(!(sName1.equals(sName2))){
return sName1.compareTo(sName2);
}
return 0;
}
public int compare(Object o1, Object o2) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
/***************************Students.txt*****************************
Student Id = 123
name = Matt Damon
Address = 465 Ripley Boulevard, Oscar Mansion,
Student Id = 126
name = Ben Affleck
Address = 200 Hunting Street
Student Id = 65
name = Salma Hayek
Address = 45 Mexican Boulevard, Hotel california
************************Problem******************************
Please input the file name:
students.txt
Exception in thread "main" java.lang.UnsupportedOperationException:
Not supported yet.
at lab2.NameComparator.compare(NameComparator.java:21)
at java.util.Arrays.mergeSort(Arrays.java:1270)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.sort(Arrays.java:1210)
at lab2.Main.main(Main.java:46)
I want to Read data from file(student.txt), then sort the list in
ascending order. One more question, i want to reports the number of
students records successfully read as its return value and no
duplicate record should be read in. How can I do that?