测试类main
/**
*
*/
package com.applicationIO;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
/*** <p>Title:TestM </p>
* <p>Description: </p>
* <p>Company: </p>
* @author
* @date
*/
public class TestM {
public static void main(String[] args) throws Exception {
StudentManage sm1 = new StudentManage();
System.out.println("欢迎来到学生信息管理系统:");
while (true) {
System.out.println("请选择你的操作:");
System.out.println("1.添加学生信息:");
System.out.println("2.查询所有学生信息:");
System.out.println("3.根据学生id删除学生:");
System.out.println("4.根据学生id修改学生姓名:");
System.out.println("0.退出系统:");
Scanner sc1 = new Scanner(System.in);
int choose = sc1.nextInt();
switch (choose) {
case 1:
sm1.addStudent();
break;
case 2:
List<Student> allStudent = sm1.getAllStudent();
Object[] array = allStudent.toArray();
System.out.println(Arrays.toString(array));
break;
case 3:
List<Student> deleteStudent = sm1.deleteStudent();
Object[] array2 = deleteStudent.toArray();
System.out.println(Arrays.toString(array2));
break;
case 4:
List<Student> getNameById = sm1.getNameById();
//将集合转为数组用toArray()方法;,将数组打印出来用Arrays。toString();
Object[] array3 = getNameById.toArray();
System.out.println(Arrays.toString(array3));
break;
case 0:
System.out.println("退出成功!");
System.exit(0);
break;
default:
break;
}
}
}
}
业务逻辑类
/**
*
*/
package com.applicationIO;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/*** <p>Title:StudentManage </p>
* <p>Description: </p>
* <p>Company: </p>
* @author
* @date
*/
public class StudentManage {
static Scanner sc1=new Scanner(System.in);
public void addStudent() throws Exception {
FileWriter fw1 = new FileWriter("student.txt",true);
System.out.println("请输入学生id:");
//学生id不能重复
Integer id=sc1.nextInt();
List<Integer> id2 = getId();
for(int i=0;i<id2.size();i++) {
Integer integer = id2.get(i);
if (integer.equals(id)) {
System.out.println("学号重复,请重新添加!");
return;
}
}
System.out.println("请输入学生姓名:");
String name=sc1.next();
System.out.println("请输入学生成绩:");
Double score = sc1.nextDouble();
String stu1=id+":"+name+":"+score;
fw1.write(stu1);
fw1.write("\n");
fw1.flush();
fw1.close();
}
//得到所有的信息,放到list集合中
public List<Student> getAllStudent() throws IOException{
List<Student> list = new ArrayList<>();
FileReader fr1 = new FileReader("student.txt");
BufferedReader br1 = new BufferedReader(fr1);
String len;
while((len = br1.readLine()) !=null) {
String[] s1 = len.split(":");
String id=s1[0];
String name=s1[1];
String score=s1[2];
Student stu1=new Student(Integer.parseInt(id), name, Double.parseDouble(score));
list.add(stu1);
}
br1.close();
fr1.close();
return list;
}
//获取所有学生的id信息,用于判断输入的id是否重复。
public static List<Integer> getId() throws Exception{
List<Integer> list = new ArrayList<>();
FileReader fs1 = new FileReader("student.txt");
BufferedReader br1 = new BufferedReader(fs1);
String len;
while((len = br1.readLine()) !=null) {
String[] s1 = len.split(":");
String id=s1[0];
Integer Iid=new Integer(Integer.parseInt(id));
list.add(Iid);
}
return list;
}
//根据id删除学生
public List<Student> deleteStudent() throws Exception{
List<Student> allStudent = getAllStudent();
FileWriter fw1 = new FileWriter("student.txt");
System.out.println("请输入你下删除的学号id:");
int chooseId = sc1.nextInt();
int index=-1;
for(int i=0;i<allStudent.size();i++) {
Student stu1 = allStudent.get(i);
Integer id = stu1.getId();
if (id==chooseId) {
index = i;
}
}
if (index !=-1) {
allStudent.remove(index);
System.out.println("删除成功");
}else {
System.out.println("不存在该id");
}
//将删除该学生信息后的学生集合用fw1.write写入打印了
for (Student student : allStudent) {
Integer id = student.getId();
String name = student.getName();
Double score = student.getScore();
String line=id+":"+name+":"+score;
fw1.write(line);
fw1.write("\n");
fw1.close();
}
return allStudent;
}
//根据id修改学生的姓名
public List<Student> getNameById() throws Exception{
List<Student> list=getAllStudent();
int index = -1;
System.out.println("请输入你下修改姓名的学号id");
int id = sc1.nextInt();
for(int i=0;i<list.size();i++) {
Student stu1 = list.get(i);
if (id==stu1.getId()) {
System.out.println("请输入你想修改后的姓名");
String name=sc1.next();
stu1.setName(name);
index = i;
}
}
if (index !=-1) {
System.out.println("修改成功");
}else {
System.out.println("不存在该id,修改失败");
}
return list;
}
}
数据信息类Student
/**
*
*/
package com.applicationIO;
/*** <p>Title:Student </p>
* <p>Description: </p>
* <p>Company: </p>
* @author
* @date
*/
public class Student {
private Integer id;
private String name;
private Double score;
/**
*
*/
public Student() {
// TODO Auto-generated constructor stub
}
public Student(Integer id, String name, Double score) {
super();
this.id = id;
this.name = name;
this.score = score;
}
/**
* @return the id
*/
public Integer getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the score
*/
public Double getScore() {
return score;
}
/**
* @param score the score to set
*/
public void setScore(Double score) {
this.score = score;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", score=" + score + "]";
}
}