一
1.问题描述
首先D盘根目录下创建students.txt文件(没有D盘或其它特殊情况的同学可以选择在其它盘符下创建)。
接收控制台输入的学生信息实例化学生对象Student,将对象装入ArrayList集合中。使用对象流能够将集合写入students.txt文件,也要能从students.txt文件中反序列化得到集合,进而获得学生的信息。
完成复制students.txt功能。复制后的文件与students.txt放在相同目录下,名为students拷贝.txt。
2.效果图:
3.评分规则
(1)在D盘(或其它盘)创建students.txt文件(4分)
(2)学生类代码正确(5分)
(3)主菜单正确(见图,选择“3,退出”之前可以反复选择前2项完成功能)(10分)
①循环(3分)
②分支(3分)
③退出功能实现(2分)
④数字输入错误有提示(2分)
(4)向文件中写入学生信息功能实现(12分)
①读取分割学生信息(3分),根据信息实例化学生对象并初始化(2分)
②学生对象加入集合(2分)
③将集合写入文件(5分)
(5)读文件显示学生信息实现(9分)
①正确从文件中读出集合(5分)
②遍历集合输出学生详细信息(4分)
(6)选择“3,退出”结束循环后,完成文件的复制(15分)
①成功复制students.txt,复制后的文件为students拷贝.txt(代码5分,效果5分)
代码如下
public class Test {
static Scanner sc = new Scanner(System.in);
static ArrayList<Student> list = new ArrayList<Student>();
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
File file = new File("D:\\student.txt");
file.createNewFile();
out:while(true) {
System.out.println("请选择序号:1.向文件中写入学生信息 2.读文件显示学生信息 3.退出");
int num = sc.nextInt();
switch(num) {
case 1:
write();
break;
case 2:
read();
break;
case 3:
break out;
default:
System.out.println("请输入正确的数字");
break;
}
}
copy();
}
public static void write() throws FileNotFoundException, IOException {
System.out.println("请输入学生的姓名,年龄和性别 逗号分隔");
String str = sc.next();
String[] split = str.split(","