对于上次学生成绩管理系统IO流的改进
2021/6/10 10:52:16
本文主要是介绍对于上次学生成绩管理系统IO流的改进,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
上篇文章:<Java>实现学生信息管理系统,涉及简单IO流
本次我会对上篇文章的一些代码做出改进。
先看改进后的存储代码:
package saveInformation; /*汤*/ import java.io.*; import java.util.Arrays; import Student.Student; //保存信息 public class saveTools{ private static File file=new File("D://stu.txt"); public static boolean saveInformation(Student[] stu) throws Exception { BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file)); for(int i=0;i<stu.length;i++){ bufferedWriter.write(stu[i].getName()+"/"+stu[i].getNumber()+"/"+stu[i].getAge()+"/"+stu[i].getSex()+"/"+stu[i].getMath()+"/"+stu[i].getEnglish()+"/"+stu[i].getJava()+"\n"); } bufferedWriter.flush(); bufferedWriter.close(); System.out.println("文件写入成功!"); return true; } public static Student[] readInformation() throws Exception{ Student[] stu = new Student[40]; BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); String temp = ""; int i=0; while((temp = bufferedReader.readLine()) != null){ String[] str = temp.trim().split("/");//trim()去掉首位空格,split()分割String字符串 String name = str[0]; String number = str[1]; String age = str[2]; String sex = str[3]; String math = str[4]; String english = str[5]; String java = str[6]; stu[i] = new Student(number,name,sex,Integer.valueOf(age),Integer.valueOf(math),Integer.valueOf(english),Integer.valueOf(java)); i++; } return stu; } }
我将上次使用的FileReader/Writer换成了BufferedReader/Writer缓冲流,并且改进加入断点(存入时对每个信息后加上’\'分隔信息,读取时检测断点,每一个信息分成不同的字符串取出),最后通过转换valueOf转换类型再返回整个数组,大功告成!。
这里要说一个注意点:在使用缓冲流时务必加上flush(),否则会出现信息缺失的bug。
其次,为了让项目每次使用都能读入文件内容,并且和新录入的信息一起进行‘增删改查’:
①我在Controller中加入方法
public boolean addStudentAll(Student[] student) { if (total < 0 || total > stu.length) { return false; } else { for (Student student1 : student) { if (student1 != null) { stu[total++] = student1; } } return true; } }
②将下面代码放到View类的Menu()方法中,这样每次进入界面都会读取数组了
student.addStudentAll(saveTools.readInformation());
结果:
改进:
下次会尝试用集合去改进代码,因为数组的存储空间是有限的。
这篇关于对于上次学生成绩管理系统IO流的改进的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南