阅读背景:

互评作业

来源:互联网 

0. 字节流与二进制文件

我的代码

class Student {
    private int id;
    private String name;
    private int age;
    private double grade;

    public Student() {

    }
    public Student(int id, String name, int age, double grade) {
        this.id = id;
        this.setName(name);
        this.setAge(age);
        this.setGrade(grade);
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        if (name.length() > 10) {
            throw new IllegalArgumentException("name's length should <=10 " + name.length());
        }
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        if (age <= 0) {
            throw new IllegalArgumentException("age should >0 " + age);
        }
        this.age = age;
    }
    public double getGrade() {
        return grade;
    }
    public void setGrade(double grade) {
        if (grade < 0 || grade > 100) {
            throw new IllegalArgumentException("grade should be in [0,100] " + grade);
        }
        this.grade = grade;
    }
    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + ", age=" + age + ", grade=" + grade + "]";
    }
}

public class Main {
    public static void main(String[] args)
          {         
             String fileName="d:\student.data";
              try(DataOutputStream dos=new DataOutputStream(new FileOutputStream(fileName)))
             {
                  Student[] stu=new Student[3];
                  stu[0]=new Student(1,"zhangsan",19,65.0);
                  stu[1]=new Student(2,"lisi",19,75.0);
                  stu[2]=new Student(3,"wangwu",20,85.0);
                  for(Student stu1:stu) {
                     dos.writeInt(stu1.getId());
                     dos.writeUTF(stu1.getName());
                     dos.writeInt(stu1.getAge());
                     dos.writeDouble(stu1.getGrade());
                }
                 
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                 System.out.println("1");
            } catch (IOException e) {
                 e.printStackTrace();
               System.out.println("2");
            }
            try(DataInputStream dis=new DataInputStream(new FileInputStream(fileName)))
             {
                while(dis!=null) {
                    int id=dis.readInt();
                    String name=dis.readUTF();
                    int age=dis.readInt();
                     double grade=dis.readDouble();
                     Student stu=new Student(id,name,age,grade);
                    System.out.println(stu);
                }
                 
                
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                 System.out.println("3");
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("4");
           }
             
         }class Student {
    privat



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: