吃花椒的喵酱丶 2023-03-22 17:09 采纳率: 100%
浏览 44
已结题

关于#线程#的问题,如何解决?

已知当前目录下有一个文件:string.txt,文件中有如下内容:(第一行为学生姓名,第二行为成绩)
张三 李四 王五 赵六 钱七
35 88 76 91 64
将以上内容从文件中读取出来,设计Student类,将上述内容解析为Student对象,并序列化到文件中。

  • 写回答

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();
            }
        }
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月22日
  • 已采纳回答 3月22日
  • 创建了问题 3月22日

悬赏问题

  • ¥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()实现黑框里写入与删除?