已知当前目录下有一个文件: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++ yoloV5改写遇到的问题
- ¥20 win11修改中文用户名路径
- ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
- ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
- ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
- ¥15 帮我写一个c++工程
- ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
- ¥15 关于smbclient 库的使用
- ¥15 微信小程序协议怎么写
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?