黑马程序员JavaEE基础班新课程day11:综合练习前情回顾:
【济南中心】JavaEE基础班新课程day01:java概述
【济南中心】JavaEE基础班新课程day02:java基础知识
【济南中心】JavaEE基础班新课程day03:选择和循环
【济南中心】JavaEE基础班新课程day04:随机数和数组
【济南中心】JavaEE基础班新课程day05:方法概述
【济南中心】JavaEE基础班新课程day06:Eclipse断点调试
【济南中心】JavaEE基础班新课程day07:面向对象
【济南中心】JavaEE基础班新课程day08:常用Api
【济南中心】JavaEE基础班新课程day09:Java集合
【济南中心】JavaEE基础班新课程day10:IO
今天我们的主要内容有:
用我们学过的知识做一个学生信息管理系统
首先我们要准备一个学生类,相信大家都已经非常熟悉了吧。来,开始吧~!
[Java] 纯文本查看复制代码
?
01 packagecom.itheima;
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23 /*
* 标准的学生类
*/
publicclassStudent {
//学号
privateString id;
//姓名
privateString name;
//年龄
privateString age;
//居住地
privateString address;
publicStudent() {
}
publicStudent(String id, String name, String age, String address) { this.id = id;
https://www.wendangku.net/doc/e38510025.html, = name;
this.age = age;
this.address = address;
}
publicString getId() {
returnid;
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 }
publicvoidsetId(String id) {
this.id = id;
}
publicString getName() {
returnname;
}
publicvoidsetName(String name) {
https://www.wendangku.net/doc/e38510025.html, = name;
}
publicString getAge() {
returnage;
}
publicvoidsetAge(String age) {
this.age = age;
}
publicString getAddress() {
returnaddress;
}
publicvoidsetAddress(String address) { this.address = address;
}
46 }
然后我们完成第一个开发任务:键盘录入3个学生信息(学号,姓名,年龄,居住地)存入集合。然后遍历集合把每一个学生信息存入文本文件(每一个学生信息为一行数据,自己定
义分割标记)
代码分析:
* A:定义学生类
* B:创建集合对象
* C:写方法实现键盘录入学生信息,并把学生对象作为元素添加到集合
* D:创建输出缓冲流对象
* E:遍历集合,得到每一个学生信息,并把学生信息按照一定的格式写入文本文件
* 举例:heima001,向问天,30,北京
* F:释放资源
[Java] 纯文本查看复制代码
?
lassArrayListToFileTest {
ublicstaticvoidmain(String[] args) throwsIOException {
//创建集合对象
ArrayList
//写方法实现键盘录入学生信息,并把学生对象作为元素添加到集合
addStudent(array);
addStudent(array);
addStudent(array);
//创建输出缓冲流对象
BufferedWriter bw = newBufferedWriter(newFileWriter("array.txt"));
//遍历集合,得到每一个学生信息,并把学生信息按照一定的格式写入文本文件
for(intx=0; x Student s = array.get(x); //heima001,向问天,30,北京 StringBuilder sb = newStringBuilder(); sb.append(s.getId()).append(",").append(s.getName()).append(",").append(s.getAge()).append(",").append(s.getA bw.write(sb.toString()); bw.newLine(); bw.flush(); } //释放资源 bw.close(); ok,我们已经成功的把学生信息加入了集合中,并且写入了文件里。下面我们开始往 里面添加学生吧! [Java] 纯文本查看复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 //添加学生 publicstaticvoidaddStudent(ArrayList //创建键盘录入对象 Scanner sc = newScanner(System.in); //为了让id能够被访问到,我们就把id定义在了循环的外面 String id; //为了让代码能够回到这里,用循环 while(true) { System.out.println("请输入学生学号:"); //String id = sc.nextLine(); id = sc.nextLine(); //判断学号有没有被人占用 //定义标记 booleanflag = false; //遍历集合,得到每一个学生 for(intx=0; x Student s = array.get(x); //获取该学生的学号,和键盘录入的学号进行比较 if(s.getId().equals(id)) { flag = true; //说明学号被占用了 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 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 address = sc.nextLine(); //创建学生对象 Student s = newStudent(); s.setId(id); s.setName(name); s.setAge(age); s.setAddress(address); //把学生对象作为元素添加到集合 43 44 45 46 47 array.add(s); //给出提示 System.out.println("添加学生成功"); } } ok ,我们把键盘录入的学生信息成功的写入了文件中,那么问题来了,怎么再从文件 中读取我们的信息呢?我相信这个肯定难不倒聪明的你们! 首先,我们还是先分析一下代码步骤: * A:定义学生类 * B:创建输入缓冲流对象 * C:创建集合对象 * D:读取文件数据,并把数据按照一定的格式进行分割赋值给学生对象,然后把学生对 象作为元素存储到集合 * heima001,向問天,30,北京 * E:释放资源 * F:遍历集合 分析完以后是不是代码已经呼之欲出了? [Java] 纯文本查看 复制代码 ? 01 02 03 publicclassFileToArrayListTest { publicstaticvoidmain(String[] args) throwsIOException { //创建输入缓冲流对象 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 BufferedReader br = newBufferedReader(newFileReader("array.txt")); //创建集合对象 ArrayList //读取文件数据,并把数据按照一定的格式进行分割赋值给学生对象,然后把学生对象作为元素存储到集合 String line; while((line=br.readLine())!=null) { //分割字符串 String[] strArray = line.split(","); //创建学生对象并赋值 Student s = newStudent(); s.setId(strArray[0]); s.setName(strArray[1]); s.setAge(strArray[2]); s.setAddress(strArray[3]); //把学生对象作为元素存储到集合 array.add(s); } //释放资源 br.close(); //遍历集合 System.out.println("学号\t\t 姓名\t 年龄\t 居住地"); 26 27 28 29 30 for(intx=0; x Student s = array.get(x); System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddress()); } } } 今天的代码量很大,不过既然我们基础知识够扎实,需要的就是多敲多练,所以今天 的案例都要自己敲完。 接下来,我们还要完善这个案例,不过需要交给你们完成。 这里我给大家一旦提示: 学生管理系统IO 版: A:在第九天学生管理系统案例的基础上,添加新需求 B:查看所有的学生的数据需要从students.txt(提供好的)中读取出来 C:增删改都需要先从students.txt 中读出学生的数据然后再把改后的学生数 据重新写回students.txt 大家加油吧!拯救我们人类就靠你们了!