已知当前目录下有一个文件:string.txt,文件中有如下内容:(第一行为学生姓名,第二行为成绩)
张三 李四 王五 赵六 钱七
35 88 76 91 64
将以上内容从文件中读取出来,设计Student类,将上述内容解析为Student对象,并序列化到文件中。
解决方案:
1.创建一个Student类,包含name和score两个属性,以及对应的getter和setter方法。
2.使用FileReader和BufferedReader读取string.txt文件中的内容,按照空格分隔每一行的内容,将姓名和成绩分别存放到两个数组中。
3.遍历姓名和成绩数组,创建对应的Student对象,并设置姓名和成绩属性。
4.将每个Student对象序列化到文件中,可以使用ObjectOutputStream实现。
参考代码如下:
import java.io.*;
public class Student implements Serializable {
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
public static void main(String[] args) {
try {
FileReader fileReader = new FileReader("string.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
String nameLine = bufferedReader.readLine();
String scoreLine = bufferedReader.readLine();
String[] names = nameLine.split(" ");
String[] scores = scoreLine.split(" ");
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("students.dat"));
for (int i = 0; i < names.length; i++) {
Student student = new Student(names[i], Integer.parseInt(scores[i]));
objectOutputStream.writeObject(student);
}
bufferedReader.close();
fileReader.close();
objectOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
这跟线程有什么关系,标题党吗