java 这是一个关于创建一个学生类(包括姓名、年龄、班级、密码)的问题,如果创建若干该类的对象并保存在文件中(密码可简单加密),从文件读取对象后显示在屏幕上,如若该文件不存在或读取对象为空,则显示相关异常信息!
时间: 2024-03-06 11:51:07 浏览: 59
好的,这是一个Java面向对象的编程问题。首先,我们需要创建一个名为Student的类,其中包含姓名、年龄、班级、密码四个属性。同时,我们需要实现对象的序列化和反序列化,以便将对象保存在文件中和从文件中读取对象。
下面是一个可能的实现示例:
Student类:
```java
import java.io.Serializable;
public class Student implements Serializable {
private String name;
private int age;
private String className;
private String password;
public Student(String name, int age, String className, String password) {
this.name = name;
this.age = age;
this.className = className;
this.password = password;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getClassName() {
return className;
}
public String getPassword() {
return password;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", className='" + className + '\'' +
", password='" + password + '\'' +
'}';
}
}
```
这个类实现了Serializable接口,以便将对象序列化。
接下来,我们需要编写一个类来保存和读取Student对象。
```java
import java.io.*;
public class StudentFile {
private static final String FILE_NAME = "students.dat";
public static void save(Student[] students) {
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(FILE_NAME))) {
oos.writeObject(students);
System.out.println("保存成功!");
} catch (IOException e) {
System.out.println("保存失败!" + e.getMessage());
}
}
public static Student[] load() {
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(FILE_NAME))) {
Student[] students = (Student[]) ois.readObject();
System.out.println("读取成功!");
return students;
} catch (IOException | ClassNotFoundException e) {
System.out.println("读取失败!" + e.getMessage());
return null;
}
}
public static void main(String[] args) {
Student[] students = {
new Student("Tom", 18, "Class 1", "123456"),
new Student("Jerry", 19, "Class 2", "abcdef")
};
save(students);
Student[] loadedStudents = load();
if (loadedStudents != null) {
for (Student student : loadedStudents) {
System.out.println(student);
}
}
}
}
```
在这个类中,我们定义了两个静态方法:save和load。save方法将Student数组保存到文件中,load方法从文件中读取Student数组。我们还定义了一个常量FILE_NAME,用于指定保存文件的名称。
在main方法中,我们创建了两个Student对象,将它们保存到文件中,然后从文件中读取对象并显示在屏幕上。
运行这个程序,你可以看到保存和读取的结果。
注意:在实际应用中,密码应该使用更加安全的加密方式,而不是简单的保存明文。本示例只是为了演示如何将对象保存到文件中。
阅读全文