已知当前目录下有一个文件:string.txt,文件中有如下内容:(第一行为学生姓名,第二行为成绩)
张三 李四 王五 赵六 钱七
35 88 76 91 64
将以上内容从文件中读取出来,设计Student类,将上述内容解析为Student对象,并序列化到文件中。
关于#线程#的问题,如何解决?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 初见~ 2023-03-22 17:16关注
解决方案:
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(); } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 java写代码遇到问题,求帮助
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?