学生管理系统

上一次使用的集合只能对学生信息进行临时存储,关闭程序时数据就会消失,这次新增了文件存储,达到对学生信息的永久记录,首先在上次代码的基础上,增加了两个方法,一个是从学生文件读取信息到集合中的方法,另一个是从集合中把学生信息写到文件中,再将增删改查方法中形参换成文件路径名的变量

package StudentManager_IO;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;/** 学生管理系统的测试类* * 步骤:*      1.定义学生类*      2.学生管理系统的主界面*      3.学生管理系统的查看学生信息方法*      4.学生管理系统的添加学生信息方法*      5.学生管理系统的删除学生信息方法*      6.学生管理系统的修改学生信息方法*/
public class StudentManagerTest {public static void main(String[] args) throws IOException {//创建集合对象ArrayList<Student> array = new ArrayList<Student>();//定义文件路径String fileName = "student.txt";while(true){//学生管理系统的主界面System.out.println("------欢迎进入学生管理系统------");System.out.println("1.查看所有学生信息");System.out.println("2.添加学生信息");System.out.println("3.删除学生信息");System.out.println("4.修改学生信息");System.out.println("5.退出");//从键盘输入学生信息Scanner sc = new Scanner(System.in);//选择操作System.out.println("请输入您的选择:");int choice = sc.nextInt();switch(choice){case 1://查看所有学生信息findAllStudent(fileName);break;case 2://添加学生信息addStudent(fileName);break;case 3://删除学生信息removeStudent(fileName);break;case 4://修改学生信息updateStudent(fileName);break;case 5://退出System.out.println("谢谢使用");System.exit(0);//系统退出default:System.out.println("您输入的操作有误,请重新输入!");break;} }}//查看学生信息的方法public static void findAllStudent(String fileName) throws IOException{//创建学生类对象Student student = new Student();//创建集合对象ArrayList<Student> array = new ArrayList<Student>();//从文件中读取学生信息到集合中readFile(fileName,array);if(array.size()==0){System.out.println("非常抱歉,当前没有学生信息可供查看!");}else{System.out.println("学号"+"\t"+"姓名"+"\t"+"年龄"+"\t"+"家庭住址");for(int i=0;i<array.size();i++){student = array.get(i);System.out.println(student.getId()+"\t"+student.getName()+"\t"+student.getAge()+"\t"+student.getAddress());}}}//添加学生信息的方法public static void addStudent(String fileName) throws IOException{//创建键盘输入对象Scanner sc = new Scanner(System.in);//创建集合对象ArrayList<Student> array = new ArrayList<Student>();//从文件中读取学生信息到集合中readFile(fileName,array);String id;while(true){System.out.println("请输入学生学号:");id = sc.nextLine();//判断学号是否重复boolean flag = false;for(int i=0;i<array.size();i++){Student student = array.get(i);if(student.getId().equals(id)){flag = true;break;//System.out.println("您输入的学号已存在,请重新输入!");}  }if(flag){System.out.println("您输入的学号已存在,请重新输入!");}else{break;}}System.out.println("请输入学生姓名:");String name = sc.nextLine();System.out.println("请输入学生年龄:");String age = sc.nextLine();System.out.println("请输入学生家庭住址:");String address = sc.nextLine();//创建学生类对象Student student = new Student();student.setId(id);student.setName(name);student.setAge(age);student.setAddress(address);//添加到集合中array.add(student);//把集合中学生信息写到文件中writeFile(fileName,array);System.out.println("添加学生成功!");}//删除学生信息方法public static void removeStudent(String fileName) throws IOException{//创建键盘输入对象Scanner sc = new Scanner(System.in);//创建集合对象ArrayList<Student> array = new ArrayList<Student>();//从文件中读取学生信息到集合中readFile(fileName,array);System.out.println("请输入要删除的学生学号:");String id = sc.nextLine();int index = -1;for(int i=0;i<array.size();i++){Student student = array.get(i);if(student.getId().equals(id)){index = i;break;}}if(index==-1){System.out.println("非常抱歉,您要删除的学生不存在,请重新输入!");}else{array.remove(index);//把集合中的学生信息写到文件中writeFile(fileName,array);System.out.println("删除学生成功!");} }//修改学生信息方法public static void updateStudent(String fileName) throws IOException{//创建键盘输入对象Scanner sc = new Scanner(System.in);//创建集合对象ArrayList<Student> array = new ArrayList<Student>();//从文件中读取学生信息到集合中readFile(fileName,array);System.out.println("请输入需要修改学生的学号:");String id = sc.nextLine();int index = -1;for(int i=0;i<array.size();i++){Student student = array.get(i);if(student.getId().equals(id)){index = i;break;}}if(index==-1){System.out.println("非常抱歉,您要修改的学生信息不存在,请重新输入!");}else{//创建学生类对象Student student = new Student();System.out.println("请输入新的学生姓名:");String name = sc.nextLine();System.out.println("请输入新的学生年龄:");String age = sc.nextLine();System.out.println("请输入新的学生家庭住址:");String address = sc.nextLine();student.setId(id);student.setName(name);student.setAge(age);student.setAddress(address);//修改后的学生信息添加到集合中array.set(index,student);//把集合中的学生信息写到文件中writeFile(fileName,array);System.out.println("恭喜修改成功!");}}//从文件读取数据到集合public static void readFile(String fileName,ArrayList<Student> array) throws IOException{//创建输入缓冲流对象FileReader fr = new FileReader(fileName);BufferedReader br = new BufferedReader(fr);String line;while((line=br.readLine()) != null){String[] datas = line.split(",");Student student = new Student();student.setId(datas[0]);student.setName(datas[1]);student.setAge(datas[2]);student.setAddress(datas[3]);array.add(student);}//释放资源br.close();}//把集合中的数据写到文件public static void writeFile(String fileName,ArrayList<Student> array) throws IOException{//创建输出缓冲流FileWriter fw = new FileWriter(fileName);BufferedWriter bw = new BufferedWriter(fw);for(int i=0;i<array.size();i++){Student student = array.get(i);StringBuilder sb = new StringBuilder();sb.append(student.getId()).append(",").append(student.getName()).append(",").append(student.getAge()).append(",").append(student.getAddress());bw.write(sb.toString());bw.newLine();bw.flush();}//释放资源bw.close();}
}----------package StudentManager_IO;
/** 学生类*/
public class Student {//学号private String id;//姓名private String name;//年龄private String age;//家庭住址private String address;public Student() {}public Student(String id, String name, String age, String address) {this.id = id;this.name = name;this.age = age;this.address = address;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}
}

Java—学生管理系统使用文件永久存储相关推荐

  1. java学生管理系统(简易)(三)---教师端的登录主页面

    教师端的登录界面就比较清晰了...可能就我自己认为,以为前面写的太乱了...蒙圈 // 学会了先布局,在完善部分代码,嘤嘤嘤...之前那个学生的感觉凉凉啊~ // 有些代码中可能有main函数,有些没 ...

  2. java考勤管理系统源码java学生考勤请假系统java学生考勤管理系统 java考勤系统java学生信息管理系统java学生管理系统

    java考勤管理系统源码java学生考勤请假系统java学生考勤管理系统 java考勤系统java学生信息管理系统java学生管理系统 public Swingtest002() {// 设置标题se ...

  3. java学生管理系统(swing) (没用数据库,附源码)

    如果有需要带数据库的,请小伙伴移步至:java+mysql学生管理系统(附源码,无套路) 事先声明: 程序简易,只是为了记录学习过程,大佬们勿喷,要实在忍不住,麻烦各位大佬轻点喷就是! 但是如果有任何 ...

  4. java学生管理系统代码_java学生信息管理系统(附源码)

    一:   介绍 1:实现登录界面 2:实现主界面 有两种操作 一种是按钮操作  另外一种是SQL语句. 3:连接SQL server 2008 数据库 用到的软件及环境SQLserver2008,ec ...

  5. 第一篇博客,java学生管理系统(挑战全网最全)

    java学生信息管理系统,(课设必备),附有源码和简版链接 博主虽然技术不高,但是系统写的真的是没话说,留着开学java课设用了. 直接转载链接了,查看系统入口 https://blog.csdn.n ...

  6. 语言学生学籍管理系统流程图_基于C语言的学生管理系统(含文件)(一)

    "点击上方"蓝色字",关注我们哦(*^▽^*)!" NO.1 篇幅较长,请空闲时观看 前言 这个项目是大一暑假完成,纯C语言编写,界面比较美观,由于当时还是一个 ...

  7. 基于IDEA的Java学生管理系统

    1.创建学生类 package studentManager;public class Student {//定义成员变量private String num;//学号private String n ...

  8. 【java项目学习笔记】Java学生管理系统(纯后端基础--增删改查)

    学生管理系统 在一所学校中,对学生人员流动的管理是很麻烦的,本案例要求编写一个学生管理系统,实现对学生信息的添加.删除.修改和查询功能.每个功能的具体要求如下: 系统的首页 用于显示系统所有的操作,并 ...

  9. Java 学生管理系统(详解)

    文章目录 学生类 main方法 首界面登录 功能选择界面 添加学生信息 删除学生信息 修改学生信息 查看学生信息 学号遍历 和 清空控制台方法 附:学生管理系统代码 Student .Java Mai ...

最新文章

  1. 什么是VMware vSphere
  2. 皮一皮:女友是有多么体贴...
  3. c语言 switch案例,C语言程序设计 2. switch语句的运用 案例 switch条件语句.docx
  4. iOS Provisioning Profile(Certificate)与Code Signing详解
  5. 架构师的能力模型(图)
  6. mysql command line client 目标不对_MySql轻松入门系列-第一站 从源码角度轻松认识mysql整体框架图...
  7. Linux 基础 (1) - 在Win10上使用Hyper-v虚拟机安装CentOS7
  8. C#。2.1 运算符
  9. java校验入参的有效性的工具类
  10. 基于昇腾CANN的卡通图像生成可在线体验啦!十分钟带你了解CANN应用开发全流程
  11. Oracle中的数据库对象
  12. AndroidStudio_从Eclipse到AndroidStudio开发工具_两者使用的区别_通过向导新建项目和引入module---Android原生开发工作笔记68
  13. NSArray 的遍历
  14. 新概念英语(1-95)Tickets,please!
  15. vue-video-player 一款vue的前端视频播放插件 支持m3u8
  16. GNSS_NMEA 0183协议的校验和计算方法_C/C++
  17. 实现网络IPv6平滑演进的DS-Lite CGN技术
  18. 单晶硅各向异性刻蚀技术
  19. 利用栈实现中缀表达式转后缀表达式
  20. AR、VR、MR 别傻傻分不清了

热门文章

  1. 行业的英语术语大全之机械工具
  2. 打工还是创业?思路决定出路![转载]
  3. POJ 2924 Gauß in Elementary School(水~)
  4. Cocos2D中的Framerate状态
  5. .RibbonLoadBalancerClient does not define or inherit an implementation of the resolved method
  6. 美股互联网IPO集散地,正在成为过去式
  7. HanLP 自然语言处理 for nodejs 1
  8. BP 神经网络的数据分类
  9. BBP Formula HDU6217
  10. 脚本下载安装及其使用,Tampermonkey脚本网站使用(Tampermonkey真是宝藏,偷偷看)