A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

要求以名字,数学成绩,语文成绩,英语成绩的格式进行录入,保存在stuInfo.txt文件中,发出来交流学习一下
  1. package com.jwis.cos;

  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.FileWriter;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7. import java.util.Set;
  8. import java.util.TreeSet;

  9. public class StuFileSave {
  10.         public static void main(String[] args) throws IOException {
  11.                 Set<Student> stuInfo = StuInfo.InfoInput();
  12.                 StuInfo.InfoSave(stuInfo);
  13.         }
  14. }
  15. class StuInfo
  16. {
  17.         public static Set<Student> InfoInput() throws IOException
  18.         {
  19.                 Set<Student> temp = new TreeSet<Student>();
  20.                 BufferedReader bufr =
  21.                                 new BufferedReader(new InputStreamReader(System.in));
  22.                 String line = null;
  23.                 while((line=bufr.readLine())!=null)
  24.                 {
  25.                         if("over".equals(line))
  26.                                 break;
  27.                         String[] stuInfo = line.split(",");
  28.                         temp.add(new Student(stuInfo[0],
  29.                                         Integer.parseInt(stuInfo[1]),
  30.                                         Integer.parseInt(stuInfo[2]),
  31.                                         Integer.parseInt(stuInfo[3])));
  32.                 }
  33.                 return temp;
  34.         }
  35.         public static void InfoSave(Set<Student> stuInfo) throws IOException
  36.         {
  37.                 BufferedWriter bufw = new BufferedWriter(new FileWriter("C:\\Users\\lx\\Desktop\\stuInfo.txt"));
  38.                 for(Student info : stuInfo)
  39.                 {
  40.                         String Info = info.toString();
  41.                         bufw.write(Info);
  42.                         bufw.newLine();
  43.                 }
  44.                 bufw.close();
  45.         }
  46. }
  47. class Student implements Comparable<Student>
  48. {

  49.         private String name;
  50.         private int math,chinese,english;
  51.         private int sum;
  52.         public Student(String name,int math,int chinese,int english) {
  53.                 // TODO Auto-generated constructor stub
  54.                 this.name = name;
  55.                 this.math = math;
  56.                 this.chinese = chinese;
  57.                 this.english = english;
  58.                 this.sum = (this.math+this.chinese+this.english);
  59.         }
  60.         @Override
  61.         public int compareTo(Student o) {
  62.                 // TODO Auto-generated method stub
  63.                 int temp = o.sum-this.sum;
  64.                 if(temp==0)
  65.                         return this.name.compareTo(o.name);
  66.                 return temp;
  67.         }
  68.         @Override
  69.         public int hashCode() {
  70.                 // TODO Auto-generated method stub
  71.                 return (this.name.hashCode()+this.sum*31);
  72.         }
  73.         @Override
  74.         public boolean equals(Object obj) {
  75.                 // TODO Auto-generated method stub
  76.                 if(!(obj instanceof Student))
  77.                         throw new ClassCastException("比较类型不对");
  78.                 Student temp =(Student)obj;
  79.                 if(this.name == temp.name)
  80.                         return this.sum==temp.sum;
  81.                 return false;
  82.         }
  83.         @Override
  84.         public String toString() {
  85.                 // TODO Auto-generated method stub
  86.                 return "student["+this.name+"]"+"\t"+"sum["+this.sum+"]";
  87.         }
  88.        
  89. }
复制代码

1 个回复

倒序浏览
1.compareTo()方法中修改
2.没注释
3.写入方法没刷新
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马