把集合中的student对象信息储存在文本中

1.student类

1                 // 姓名
2         private String name;
3         // 语文成绩
4         private int chinese;
5         // 数学成绩
6         private int math;
7         // 英语成绩
8         private int english;
  public int getSum() {
return this.chinese + this.math + this.english;
}

 

 

 

2.studentTest类

 1 /**
 2  *  * 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件
 3  * 
 4  * 分析:
 5  *         A:创建学生类
 6  *         B:创建集合对象
 7  *             TreeSet<Student>
 8  *         C:键盘录入学生信息存储到集合
 9  *         D:遍历集合,把数据写到文本文件
10  * @author chenwen
11  *
12  */
13 public class StudentTest7 {
14 
15     public static void main(String[] args) throws IOException {
16         TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {
17 
18             @Override
19             public int compare(Student s1, Student s2) {
20                  int num=s1.getSum()-s2.getSum();
21                  int num2=num==0?s1.getChinese()-s2.getChinese():num;
22                  int num3=num2==0?s1.getMath()-s2.getMath():num2;
23                  int num4=num3==0?s1.getName().compareTo(s2.getName()):num3;
24                  return num4;
25             }
26         });
27         // 键盘录入学生信息存储到集合
28         for(int x =1;x<=5;x++) {
29             Scanner sc = new Scanner(System.in);
30             System.out.println("请输入第"+x+"个学生的信息");
31             System.out.println("姓名");
32             String name =sc.nextLine();
33             System.out.println("语文成绩");
34             int chinese  =sc.nextInt();
35             System.out.println("数学成绩");
36             int math  =sc.nextInt();
37             System.out.println("英语成绩");
38             int english  =sc.nextInt();
39             
40             Student s= new Student();
41             s.setName(name);
42             s.setChinese(chinese);
43             s.setMath(math);
44             s.setEnglish(english);
45             ts.add(s);
46         }
47         // 遍历集合,把数据写到文本文件
48         BufferedWriter bw =new BufferedWriter(new FileWriter("student.txt"));
49         bw.write("学生信息如下:");
50         bw.newLine();
51         bw.flush();
52         bw.write("姓名,语文成绩,数学成绩,英语成绩");
53         bw.newLine();
54         bw.flush();
55         for (Student s : ts) {
56             StringBuilder sb =new StringBuilder();
57             sb.append(s.getName()).append(",").
58             append(s.getChinese()).append(",").
59             append(s.getMath()).append(",").
60             append(s.getEnglish());
61             bw.write(sb.toString());
62             bw.newLine();
63             bw.flush();
64         }
65         bw.close();
66         System.out.println("学生信息储存完毕!");
67     }

 

posted @ 2018-06-14 08:28  深沉有点事  阅读(212)  评论(0编辑  收藏  举报