java037IO学生管理系统正确

package secondRountine;

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;

public class StudentSystem2 {

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.退出");

System.out.println("请输入你的选择");

//要输入你的选择就得使用键盘录入来实现

Scanner sc = new Scanner(System.in);

String  choice = sc.nextLine();

//选择自己的要输入的选项

switch (choice){

case "1":

//查看所有学生信息

//findAllStudent(array);

findAllStudent(fileName);

break;

case "2":

//添加学生

addStudent(fileName);

break;

case "3":

//删除学生

deleteStudent(fileName);

break;

case "4":

//修改学生

selectStudent(fileName);

break;

case "5":

//退出

System.out.println("谢谢你的使用");

System.exit(0);

break;

default:

System.out.println("谢谢你的使用");

System.exit(0);    //jvm虚拟机退出

break;

}

}

}

//写方法写入集合数据到文本文件

public static void write(String fileName,ArrayList<Student> array) throws IOException{

//创建输出缓冲流对象

BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));

for(int x=0;x<array.size();x++){

Student s =array.get(x);

StringBuilder sb = new StringBuilder();

sb.append(s.getId()).append(",").append(s.getName()).append(",").append(s.getAge()).append(",").append(s.getHome());

bw.write(sb.toString());

bw.newLine();

bw.flush();

}

bw.close();

}

//写方法读取文本文件

public static void read(String fileName,ArrayList<Student> array) throws IOException{

//创建输入缓冲流对象

BufferedReader br = new BufferedReader(new FileReader(fileName));

String line;

while((line=br.readLine())!=null){

String[] str = line.split(",");//把文本文件中的每行元素按逗号分割

Student s = new Student();

s.setId(str[0]);

s.setName(str[1]);

s.setAge(str[2]);

s.setHome(str[3]);

array.add(s);

}

br.close();

}

//查看所有学生信息,先得判断集合里有没有学生,然后遍历集合输出学生数据

public static void findAllStudent(String fileName) throws IOException{

ArrayList<Student> array = new ArrayList<Student>();

//把文本中的数据读取到集合内

read(fileName, array);

if(array.size()==0){

System.out.println("目前还没有可供查询的学生信息,请返回重新选择");

return;

}

//为了方便看到对应信息,加补一行提示语句

System.out.println("学号 姓名 年龄 居住地");

//查看学生就是遍历整个学生集合,遍历集合

for(int x =0;x<array.size();x++){

//创建学生对象用于接收数据

Student s = array.get(x);

System.out.println(s.getId()+" "+s.getName()+" "+s.getAge()+" "+s.getHome());

}

}

//添加学生

public static void addStudent(String fileName) throws IOException{

ArrayList<Student> array = new ArrayList<Student>();

//System.out.println(array.size());

//把文本中的数据读取到集合内

read(fileName, array);

//键盘录入学生信息,1.学号

//判断学号是否有重复的

Scanner sc = new Scanner(System.in);

String id;

boolean flag=false;

while(true){

System.out.println("请输入一个学号");

id=sc.nextLine();

//遍历集合

for(int x=0;x<array.size();x++){

Student s = array.get(x);

if(s.getId().equals(id)){  //将现在键盘录入的学号与集合里的学号进行比对看是否相同

flag=true;    // 如果相同了那么就将true赋给flag

break;

}

}

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 home = sc.nextLine();

//存到集合

Student s  =new Student();

s.setId(id);

s.setName(name);

s.setAge(age);

s.setHome(home);

array.add(s);

//把集合中的数据写到文本文件

write(fileName, array);

System.out.println("添加学生成功!");

}

//删除学生

public static void deleteStudent(String fileName) throws IOException{

ArrayList<Student> array = new ArrayList<Student>();

//把文本中的数据读取到集合内

read(fileName, array);

Scanner sc = new Scanner(System.in);

System.out.println("请输入你要删除的学生的学号");

String id =sc.nextLine();

int a=-1;

for(int x=0;x<array.size();x++){

Student s =array.get(x);

if(s.getId().equals(id)){

a=x;

//break;

}

break;

}

if(a==-1){

System.out.println("你输入的学号,系统里不存在,请重新输入");

}else{

array.remove(a);

System.out.println("删除成功");

}

write(fileName, array);

}

//修改学生

public static void selectStudent(String fileName) throws IOException{

ArrayList<Student> array = new ArrayList<Student>();

//把文本中的数据读取到集合内

read(fileName, array);

Scanner sc = new Scanner(System.in);

System.out.println("请输入要修改学生的学号");

String id = sc.nextLine();

int a=-1;

for(int x=0;x<array.size();x++){

Student s = array.get(x);

if(s.getId().equals(id)){

a=x;

break;

}

}

if(a==-1){

System.out.println("你输入的学号有误不存在,请重新输入");

}else{

System.out.println("请输入学生姓名:");

String name = sc.nextLine();

System.out.println("请输入学生年龄:");

String age = sc.nextLine();

System.out.println("请输入学生住址");

String home = sc.nextLine();

//存到集合

Student s  =new Student();

s.setId(id);

s.setName(name);

s.setAge(age);

s.setHome(home);

array.add(s);

}

write(fileName, array);

}

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,701评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,649评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,037评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,994评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,018评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,796评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,481评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,370评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,868评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,014评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,153评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,832评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,494评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,039评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,437评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,131评论 2 356

推荐阅读更多精彩内容

  • 1.步骤: a:定义学生类 b:学生管理系统的主界面的代码编写 c:学生管理系统的查看所有学生的代码编...
    牛倩贱阅读 539评论 0 3
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 3,287评论 0 19
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 3,322评论 0 9
  • 一阵风吹过来, 掠过你的发线, 丝丝凉意 沁人心脾, 多么渴望, 这风能吹的再久一点, 只是一阵风, 轻轻的吹过,...
    宁静wfe阅读 286评论 0 1
  • 你的泪 是随风飘落的花瓣雨 轻轻地 柔柔地 含着无尽的思绪 寻觅着 摇曳着 在停留的瞬间 与平静的湖面相依 激起片...
    那飘落的粉笔灰阅读 436评论 0 0