//按分数由高到底,集合到文件
public class ArrayListToFile {
public static void main(String[] args) {
//创建TreeSet集合,通过比较器排序
TreeSet<Student> ts = new TreeSet<>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
int num = s2.getSum() - s1.getSum();
int num2 = num == 0 ? s2.getChinese() - s1.getChinese() : num;
int num3 = num2 == 0 ? s2.getMath() - s1.getMath() : num2;
int num4 = num3 == 0 ? s2.getEnglish() - s1.getEnglish() : num3;
return num4;
}
});
//键盘录入学生数据
for (int i = 0; i < 5; i++) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第" + (i + 1) +"个学生信息: ");
System.out.println("姓名: ");
String name = sc.nextLine();
System.out.println("语文成绩: ");
int chinese = sc.nextInt();
System.out.println("数学成绩: ");
int math = sc.nextInt();
System.out.println("英语: ");
int english = sc.nextInt();
Student s = new Student();
s.setName(name);
s.setChinese(chinese);
s.setMath(math);
s.setEnglish(english);
ts.add(s);
}
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter("score.txt"));
//遍历集合得到每一个学生对象
for (Student s : ts){
StringBuilder sb = new StringBuilder();
sb.append(s.getName()).append(",").append(s.getChinese()).append(",").append(s.getMath())
.append(",").append(s.getEnglish()).append(",").append(s.getSum());
String str = sb.toString();
bw.write(str);
bw.newLine();
bw.flush();
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}