[英]How to write an array of objects to a File in Java?
假设我有一个Student
类的对象,该对象具有以下字段:
String name;
int age;
int roll_number;
我实例化为:
Student A[] = new Student();
现在,是否有一种使用文件处理将所有这些信息存储在文本文件中的方法?
我考虑过遍历数组中的每个元素,然后将所有字段都转换为字符串,但这似乎是错误的。
另一种方法是使用序列化 。 您的Student
类必须实现Serializable
:
class Student implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private int age;
private int rollNumber;
//...
}
然后读取和写入Student
数组:
try {
Student[] students = new Student[3];
//Write Student array to file.
FileOutputStream fos = new FileOutputStream("students.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(students);
oos.close();
//Read Student array from file.
FileInputStream fis = new FileInputStream("students.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
Student[] studentsFromSavedFile = (Student[]) ois.readObject();
ois.close();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
您始终可以在类的toString()
方法中计算格式,以便在写入文件时,它将按照该格式写入对象。
假设您的toString()
是,
public String toString() {
return "Name : " + name + " : Age : " + age;
}
因此,这将以以下形式写入您的文件(如果您调用bw.write(person.toString());
)
Name : Azhar : Age : 25
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.