把集合中的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 }