m0_65758085 2021-12-29 13:30 采纳率: 33.3%
浏览 40

编写程序创建文件data.txt

怎么样在程序中实现把如下3行信息写入data.txt:第一行存放你的学号和姓名信息,第二行存放你的兴趣爱好,第三行存放你的个人座右铭。最后,然后再将data.txt文件的所有内容读取并输出在控制台,可有解法

  • 写回答

1条回答 默认 最新

  • 神仙别闹 2021-12-29 13:52
    关注

    结合一下三段代码,可以实现你要的功能

    写入txt文件

    // 将集合中的数据写入到txt文件中, 思路: 使用打印流
        public void WriteTxt(List<Student> list, String fileName) {
            try {
                PrintStream printStream = new PrintStream(new FileOutputStream(fileName));
                printStream.printf("学号\t姓名\t性别\t总分\t平均分\n");
                for (int i = 0; i < list.size(); i++) {
                    printStream.printf("%s\t%s\t%s\t%.2f\t%.2f\n", list.get(i).getId(),
                        list.get(i).getName(), list.get(i).getGender(),
                            list.get(i).getTotalScore(), list.get(i).getAverage());
                }
                printStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    

    读取txt文件

     // 从文本文件中读,将读出的数据存放于集合中
            List<Student> list = new ArrayList<>();
    
            File file = new File(fileName);
            try {
                BufferedReader bf = new BufferedReader(new FileReader(file));
    
                String content = "";
    
                while (content != null) {
                    content = bf.readLine();
    
                    if (content == null) {
                        break;
                    }
                    // 设置正则将多余空格或Tab键都转为一个空格
                    String[] str = content.trim().split("\\s{2,}|\t");
                    Student student = new Student();
    
                    student.setId(str[0]);
                    student.setName(str[1]);
                    student.setGender(str[2]);
                    student.setJava(Float.parseFloat(str[3]));
                    student.setEnglish(Float.parseFloat(str[4]));
                    student.setMath(Float.parseFloat(str[5]));
                    student.setTotalScore();
                    student.setAverage();
    
                    list.add(student);
                }
    
                bf.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
    

    控制台输出

    System.out.println("Tom,12");
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月29日

悬赏问题

  • ¥15 uniapp的uni-datetime-picker组件在ios端不适配
  • ¥15 前端 uniapp App端在离线状态如何使用modbus 连接手机蓝牙进行读写操控机器?
  • ¥15 SQL语句根据字段自动生成行
  • ¥500 “掌声响起来”软件(不确定性人工智能)
  • ¥500 我要找大模型一体机产品手册和应用案例
  • ¥60 用r语言进行数据分析
  • ¥20 关于游戏c++语言代码问题
  • ¥15 如何制作永久二维码,最好是微信也可以扫开的。(相关搜索:管理系统)
  • ¥15 delphi indy cookie 有效期
  • ¥15 labelme打不开怎么办